designer¸¦ ÀÌ¿ëÇÑ text editor ÀÛ¼º
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

Contents

1 ¼Ò°³
2 Editor ÀÛ¼º
2.1 GUI ¸¸µé±â
2.2 mainÇÔ¼ö¿Í gui include ÆÄÀÏ ¸¸µé±â
2.3 qmake¸¦ ÀÌ¿ëÇÑ Makefile »ý¼º
2.3.1 designerÀÇ ÆÄÀÏ °ü¸® ±¸Á¶
2.3.2 »ý¼ºÀÚ¿Í ¼Ò¸êÀÚÀÇ »ç¿ë
2.4 ½½·ÔÇÔ¼ö ÀÛ¼º
2.4.1 »ý¼ºÀÚ È£Ãâ ÇÔ¼ö : init
2.4.2 fileNew
2.4.3 fileOpen
2.4.4 fileSave
2.4.5 fileExit
2.4.6 helpAbout
2.4.7 changedFlag
2.5 °á·Ð
2.5.1 ÇØ¾ßÇÒÀÏ


1 ¼Ò°³

º¸Åë GUI ŸŶÀ» ÇнÀÇÒ ¶§ °¡Àå ÁÁÀº ¿¹·Î »ç¿ëÇÏ´Â°Ô ¿¡µðÅÍ ÀÌ´Ù. GUIÀÇ ÀϹÝÀûÀÎ È­¸é ±¸¼ºÀ» ¸ðµÎ °¡Áö°í ÀÖÀ¸¸é¼­, ÆÄÀÏ Àбâ/ÀúÀå, ¸Þ´ºÁ¦¾îµîÀÇ ÁÖ¿äÇÑ ½ºÅ³À» ÀÍÈú ¼ö Àֱ⠶§¹®ÀÌ´Ù.


2 Editor ÀÛ¼º

À̹ø¿¡´Â designer¸¦ ÀÌ¿ëÇØ¼­ °£´ÜÇÑ GUI ¿¡µðÅÍ ÇÁ·Î±×·¥À» ¸¸µé¾î º¸µµ·Ï ÇϰڴÙ. ¸¸µé¾îÁø ÇÁ·Î±×·¥Àº ´ë·« ´ÙÀ½°ú °°Àº ¸ð½ÀÀ» º¸¿©ÁÙ °ÍÀÌ´Ù.

http://www.joinc.co.kr/albums/album01/akg.png

2.1 GUI ¸¸µé±â

»ç½Ç À§ÀÇ ±×¸²¿¡¼­¿Í °°ÀÌ ¸Þ´º¹Ù, Åø¹Ù, ÅØ½ºÆ® ¿¡µðÅÍâ, »óÅÂ¹Ù¿Í °°Àº ±âº»ÀûÀÎ À§Á¬°ú ÆÄÀÏ¿­±â/ÀúÀå, º¹»ç/ºÙÀ̱â/ÀÚ¸£±â/µÇµ¹¸®±â µîÀÇ ±â´ÉÀ» ±¸ÇöÇÏ·Á¸é »ó´çÇÑ ½Ã°£¿¡ °ÉÃļ­ ´Ü¼ø ³ë°¡´Ù ÀÛ¾÷À» ÇØ¾ß ÇÒ°ÍÀÌ´Ù.

±×·¯³ª Designer¸¦ ÀÌ¿ëÇÏ¸é °£´ÜÇÏ°Ô ±¸ÇöÇÒ ¼ö ÀÖ´Ù.

ÀÏ´Ü designer¸¦ ½ÇÇà½Ã۰í File > New > C++ Project¸¦ ¼±ÅÃÇØ¼­ ÇÁ·ÎÁ§Æ® ÆÄÀÏÀ» »ý¼ºÇÑ´Ù. ÇÁ·ÎÁ§Æ® ÆÄÀÏÀÇ À̸§Àº Editor.pro·Î ÇϰڴÙ.

ÇÁ·ÎÁ§Æ®¸¦ »ý¼ºÇßÀ¸´Ï ±âº» È­¸éÀ» ¸¸µé¾î¾ß ÇÑ´Ù. File > New > Main Windows¸¦ ¼±ÅÃÇϵµ·Ï ÇÑ´Ù. Main Windows´Â ¸Þ´º¹Ù, Åø¹Ù, main â, »óŹٵîÀ» °¡Áø ÀϹÝÀûÀÎ À§Á¬À» °¡Áø âÀ» »ý¼ºÇÑ´Ù.

Main Windows¸¦ Ŭ¸¯Çϸé Main Window Wizard°¡ ½ÇÇàµÈ´Ù. ¿©±â¿¡¼­´Â Main Window¿¡ ¾î¶² À§Á¬ ±¸¼º¿ä¼Ò¸¦ °¡Áö°Ô ÇÒ°ÇÁö¸¦ °áÁ¤ÇÒ ¼ö ÀÖ´Ù.

http://www.joinc.co.kr/albums/album01/akh.sized.png

¿©±â¿¡¼­´Â ¸ðµç À§Á¬ ¿ä¼Ò¸¦ ¼±ÅÃÇϵµ·Ï ÇϰڴÙ. Next¸¦ Ŭ¸¯Çؼ­ ´ÙÀ½À¸·Î ³Ñ¾î°£´Ù.

ÀÌÁ¦ Åø¹Ù ¸Þ´º¿¡ µé¾î°¥ ¾ÆÀÌÅÛ Á¾·ù¿Í À§Ä¡µîÀ» ÆíÁýÇÏ°Ô µÈ´Ù. ÆíÁýÀº ¸Å¿ì Á÷°üÀûÀÓÀ¸·Î ÇÒ ¼ö ÀÖ´Ù. ¼±ÅÃÇÑÈÄ finish ¹öưÀ» ´©¸£¸é ±×¸²°ú °°Àº GUI È­¸é°ú Action ÆíÁýÈ­¸éÀÌ ¶á´Ù.

http://www.joinc.co.kr/albums/album01/aki.sized.png

Action ¿¡µðÅ͸¦ º¸¸é ¾Ë°ÚÁö¸¸ ¸ðµç ¸Þ´º ¾ÆÀÌÅÛÀÇ ¼±ÅÃÈ÷ ¹ß»ýÇÏ´Â À̺¥Æ®¿¡ ´ëÇÑ ½½·ÔÇÔ¼öÀÇ À̸§ÀÌ Á¤ÀǵǾî ÀÖ´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. ÇÁ·Î±×·¡¸Ó´Â ´ÜÁö °¢ ½½·Ô ÇÔ¼ö¿¡ ´ëÇÑ ½ÇÁ¦ ³»¿ëÀ» ½á³Ö±â¸¸ ÇÏ¸é µÈ´Ù.

ÀÌÁ¦ Main Window Áß¾Ó¿¡ ÅØ½ºÆ® ¿¡µðÅͰ¡ À§Ä¡Çϵµ·Ï ¸¸µé¾î º¸ÀÚ. Common Widgets¿¡¼­ TextEdit¸¦ ¼±ÅÃÇÑÈÄ Main Windows¿¡ À§Ä¡Çϵµ·Ï ÇÑ´Ù. TextEdit´Â Main WindowÀÇ Å©±â º¯È­¿¡ ¸ÂÃ߾ º¯È­ ÇØ¾ß ÇÔÀ¸·Î Ctrl+H, Ctrl+J¸¦ ÀÌ¿ëÇØ¼­ ·¹À̾ƿôÀ» °áÁ¤Çϵµ·Ï ÇÑ´Ù. ÀÌÁ¦ Main WindowsÀÇ À̸§À» Edit·Î TextEditÀ§Á¬ÀÇ À̸§À» textEdit·Î º¯°æÇÑÈÄ Ctrl+s·Î ÀúÀåÇϵµ·Ï ÇÑ´Ù. Áö±Ý±îÁö ÀÛ¾÷À» Á¦´ë·Î ÁøÇàÇß´Ù¸é ´ÙÀ½°ú °°Àº GUI µðÀÚÀÎ È­¸éÀÌ ¸¸µé¾î Á³À» °ÍÀÌ´Ù.

http://www.joinc.co.kr/albums/album01/akj.png

GUI È­¸éÀÌ ¸¸µé¾î Á³´Ù¸é, À̰ÍÀ» edit.uiÀ̸§À¸·Î ÀúÀåÇϵµ·Ï ÇÑ´Ù.

2.2 mainÇÔ¼ö¿Í gui include ÆÄÀÏ ¸¸µé±â

edit.ui ÆÄÀÏÀÌ ¸¸µé¾îÁ³´Ù¸é ÀÌ Á¤º¸¸¦ Åä´ë·Î mainÇÔ¼ö¸¦ Æ÷ÇÔÇÑ Äڵ带 ¸¸µéµµ·Ï ÇÑ´Ù. File > New > C++ Main FileÀ» Ŭ¸¯Çϸé ÀÚµ¿À¸·Î ¸¸µé¾îÁØ´Ù. ÀÌÁ¦ Çì´õÆÄÀÏÀ» »ý¼ºÇØ¾ß Çϴµ¥ designerÀÇ ¿À¸¥ÂÊ¿¡ ÀÖ´Â Project Overview¿¡¼­ edit.ui¸¦ Ŭ¸¯ÇØ º¸¸é ÇÏÀ§ ¿ä¼Ò·Î edit.ui.h°¡ ºñȰ¼ºÈ­ µÈ »óÅ·Πº¸ÀÏ °ÍÀÌ´Ù. ±×³É ´õºíŬ¸¯Çϸé edit.ui.h ÆÄÀÏÀÌ »ý¼ºµÈ´Ù. ¿©±â¿¡´Â ½ÇÁ¦ GUI¿¡¼­ »ç¿ëÇÒ °¢Á¾ ½½·ÔÇÔ¼öµé¿¡ ´ëÇÑ Á¤Àǰ¡ µé¾î°£´Ù. ¹°·Ð ÇÔ¼ö Á¤ÀÇ´Â ÇÁ·Î±×·¡¸Ó°¡ Á÷Á¢ÇØÁÖ¾î¾ß ÇÑ´Ù.

Ctr+S¸¦ ÀÌ¿ëÇØ¼­ main.cpp¿Í edit.ui.h¸¦ ¸ðµÎ ÀúÀåÇϵµ·Ï ÇÑ´Ù.

2.3 qmake¸¦ ÀÌ¿ëÇÑ Makefile »ý¼º

ÀÌÁ¦ qmake¸¦ ÀÌ¿ëÇØ¼­ ÇÁ·ÎÁ§Æ® ÆÄÀÏ edit.pro·Î ºÎÅÍ makeÆÄÀÏÀ» »ý¼ºÇϵµ·Ï ÇÏÀÚ.
# qmake -o Makefile edit.pro 
 

ÀÌ·¸°Ô Çϸé Makefile°¡ ¸¸µé¾î Áö´Âµ¥, Áï½Ã make¸¦ ÀÌ¿ëÇØ¼­ ÇöÀç±îÁö ¸¸µé¾îÁø Äڵ带 Å×½ºÆ® ÇÒ ¼ö ÀÖ´Ù. ¹°·Ð ½½·ÔÇÔ¼öµéÀº ¾ÆÁ÷ Á¤Àǰ¡ µÇ¾î ÀÖÁö ¾Ê±â ¶§¹®¿¡ ´ÜÁö GUIÇüŸ¸ º¸¿©ÁÖ´Â ÇÁ·Î±×·¥ÀÌ ½ÇÇà µÉ°ÍÀÌ´Ù.

2.3.1 designerÀÇ ÆÄÀÏ °ü¸® ±¸Á¶
¿©±â¿¡¼­ ±Ã±ÝÇÑ Á¡ÀÌ ÀÖÀ» °Çµ¥, main.cppÆÄÀÏÀº 10ÁÙ ³»¿ÜÀÇ °£´ÜÇÑ mainÇÔ¼ö¸¸À» Æ÷ÇÔÇϰí ÀÖÀ¸¸ç edit.ui.h¿¡´Â ÇÔ¼ö Á¤ÀǸ¸ µé¾î ÀÖ´Ù. ±×·¸´Ù¸é ÇÔ¼ö ¼±¾ðºÎµîÀÌ ¾îµð¿¡ Á¸ÀçÇÏ´ÂÁö ±Ã±ÝÇØ Áú °Í °°´Ù.

´ÙÀ½Àº designer¿¡ ÀÇÇØ¼­ °ü¸®µÇ´Â ÆÄÀÏ ±¸¼ºµµ´Ù.

http://www.joinc.co.kr/albums/album01/akk.png

designer´Â .proÆÄÀÏÀ» ÀÌ¿ëÇØ¼­ ÇÁ·ÎÁ§Æ®¸¦ °ü¸®ÇÏ¸ç µðÀÚÀÎµÈ GUI Á¤º¸´Â .uiÆÄÀÏ¿¡ ÀúÀåµÈ´Ù. ±×ÈÄ qmake¸¦ ½ÇÇà½Ã۸é qmake´Â uic¸¦ ÀÌ¿ëÇØ¼­ .ui ÆÄÀÏ·Î ºÎÅÍ C++ Äڵ带 »ý¼ºÇØ ³½´Ù. À§ ±×¸²¿¡¼­ ÆÄ¶õ»öÀ¸·Î ¹­¿©ÀÖ´Â ÆÄÀϵéÀº ¼ø¼öÇÏ°Ô designer¿¡ ÀÇÇØ¼­ »ý¼ºµÇ´Â ÆÄÀϵé·Î ÇÁ·Î±×·¡¸Ó°¡ ¼öÁ¤Çؼ­´Â ¾ÈµÇ´Â ÆÄÀϵéÀÌ´Ù. ¿À·ÎÁö designer¿¡ ÀÇÇØ¼­¸¸ ¼öÁ¤ÇØ¾ß ÇÏ´Â ÆÄÀϵéÀÌ´Ù. .uiµð·ºÅ丮¿Í .mocµð·ºÅ丮¿¡ ÀÖ´Â ÆÄÀϵéÀº .uiÆÄÀÏ¿¡ ÀÇÇØ¼­ ÀÚµ¿ »ý¼ºµÇ´Â °ÍµéÀ̱⠶§¹®¿¡ ¼öÁ¤ÇÑ´Ù°í ÇØµµ make¸¦ ÅëÇØ¼­ ´Ù½Ã ºôµå ÇÒ°æ¿ì °³¹ßÀÚ°¡ ¼öÁ¤ÇÑ Á¤º¸´Â ¸ðµÎ »ç¶óÁ® ¹ö¸®±â ¶§¹®ÀÌ´Ù.

½ÇÁ¦·Î °³¹ßÀÚ°¡ ¼öÁ¤ÇÒ ¼ö ÀÖ´Â ÆÄÀÏÀº È®ÀåÀÚ°¡ .ui.hÀÎ ÆÄÀϰú main.cppÀÌ´Ù.

2.3.2 »ý¼ºÀÚ¿Í ¼Ò¸êÀÚÀÇ »ç¿ë
¾Õ¼­ ¼³¸íÇßµíÀÌ UI Á¤º¸¸¦ ´ã°í Àִ Ŭ·¡½ºÀÇ Çì´õÆÄÀϰú .cppÆÄÀÏÀº .ui ÆÄÀϷκÎÅÍ ÀÚµ¿À¸·Î »ý¼ºµÇ¸ç, À̶§ »ý¼ºÀÚ¿Í ¼Ò¸êÀÚÀÇ °æ¿ì .uiµð·ºÅ丮 ¹ØÀÇ .cppÆÄÀÏ¿¡ À§Ä¡ÇÑ´Ù. À̵éÀº Á÷Á¢ ¼öÁ¤ÇÏ¸é ¾ÈµÇ´Â ÆÄÀÏ·Î ¸¸¾à ÇÁ·Î±×·¡¸Ó°¡ ¼öµ¿À¸·Î »ý¼ºÀÚ³ª ¼Ò¸êÀÚÀÇ ³»¿ëÀ» ¼öÁ¤ÇÒ °æ¿ì ´çÀå ÄÄÆÄÀÏÇϴµ¥¿¡´Â ¹®Á¦ ¾ø°ÚÁö¸¸ ui°¡ ¹Ù²ï´Ù°Å³ª make cleanÀ» ÇßÀ»°æ¿ì ±âÁ¸ »ý¼ºÀÚ³ª ¼Ò¸êÀÚ¿¡ Ãß°¡Çß´ø ³»¿ëÀº ¸ù¶¥ ³¯¶ó°£´Ù.

»ý¼ºÀÚ¿Í ¼Ò¸êÀÚ¸¦ »ç¿ëÇÏ°í ½Í´Ù¸é designer¿¡¼­ Ŭ·¹½º¿¡ init()¿Í destory() ÇÔ¼ö¸¦ µî·Ï ½ÃÄÑ¾ß ÇÑ´Ù. ±×·¯¸é »ý¼ºÀÚ¿¡¼­ init()ÇÔ¼ö¸¦ ¼Ò¸êÀÚ¿¡¼­ destory()ÇÔ¼ö¸¦ ºÒ·¯¼­ »ç¿ëÇÏ°Ô µÈ´Ù.

2.4 ½½·ÔÇÔ¼ö ÀÛ¼º

ÀÌÁ¦ ½½·ÔÇÔ¼ö¸¦ ÀÛ¼ºÇϱ⸸ ÇÏ¸é µÈ´Ù. ½½·ÔÇÔ¼öµéÀº edit.ui.h¿¡ À§Ä¡Çϰí ÀÖÀ¸´Ï, designerÀÇ ³»Àå ¿¡µðÅ͸¦ ÀÌ¿ëÇØ¼­ ÆíÁýÇÏ¸é µÈ´Ù. ¸¸¾à edsignerÀÇ ³»Àå ¿¡µðÅÍ ±â´ÉÀÌ ¸¾¿¡ µéÁö ¾Ê´Â´Ù¸é viµîÀÇ ¿ÜºÎ ÆíÁý±â¸¦ ÀÌ¿ëÇÒ ¼öµµ ÀÖ´Ù. ÀÌ·²°æ¿ì designer°ú vi¸¦ ¿Ô´Ù °¬´Ù ÇØ¾ßÇÏ´Â ºÒÆíÇÔÀÌ ¹ß»ýÇÒ ¼ö ÀÖ´Ù.

ÀÌÁ¦ ÇÔ¼ö¸¦ ÄÚµùÇϵµ·Ï ÇϰڴÙ. ¿©±â¿¡¼­´Â fileNew, fileOpen, fileSave, helpAbout,fileExit ½½·ÔÇÔ¼öµé¸¸À» Á¤ÀÇÇϵµ·Ï ÇϰڴÙ. ´Ù¸¥ ½½·ÔÇÔ¼öµé¿¡ ´ëÇÑ Á¤ÀÇ´Â °¢ÀÚ ÇØº¸±â ¹Ù¶õ´Ù.

2.4.1 »ý¼ºÀÚ È£Ãâ ÇÔ¼ö : init
ÀÌ ÇÔ¼ö´Â »ý¼ºÀÚ¿¡¼­ È£ÃâÇÏ´Â ÇÔ¼ö´Ù. ¿©±â¿¡´Â textEdit À§Á¬¿¡ ´ëÇÑ textChanged ½Ã±×³ÎÀ» µî·Ï ½Ãų °ÍÀÌ´Ù. ÀÌ textChaged() ½Ã±×³Î ÇÔ¼ö´Â ¾î¶² ¹®ÀÚÀÇ ÀԷµîÀ¸·Î ÀÎÇÏ¿© ³»¿ëÀÌ ¹Ù²î¾úÀ» ¶§ ½ÅÈ£¸¦ º¸³»µµ·Ï µÇ¾îÀÖ´Ù.

ÀÌ°Ô ÇÊ¿äÇÑ ÀÌÀ¯´Â »ç¿ëÀÚ°¡ ³»¿ëÀ» ¼öÁ¤Çߴµ¥, ÀúÀåÇÏÁö ¾Ê°í "close"¹öưÀ» ´­·¶À» ¶§, °æ°í ¸Þ½ÃÁö¸¦ »Ñ·ÁÁÖ±â À§ÇÔÀÌ´Ù.
void init() 
{ 
    Flag = 0;  
    connect( textEdit, SIGNAL( textChanged() ), this, SLOT( changedFlag() ) ); 
} 
 

textEditÀ§Á¬¿¡¼­ ³»¿ëÀÇ º¯È­°¡ ÀÖÀ¸¸é, ½½·Ô ÇÔ¼öÀÎ chagedFlag()°¡ È£ÃâµÈ´Ù. changedFlag()½½·ÔÇÔ¼ö´Â Ç÷¡±×¸¦ TRUE·Î º¯°æÇÑ´Ù. ¹°·Ð chagedFlagÇÔ¼ö´Â designer¸¦ ÀÌ¿ëÇØ¼­ ½½·ÔÇÔ¼ö·Î µî·Ï½ÃÄÑÁà¾ß ÇÑ´Ù. changedFlagÇÔ¼ö´Â ´ÙÀ½°ú °°Àº °£´ÜÇÑ Äڵ常À» °¡Áö°Ô µÉ °ÍÀÌ´Ù.
void Edit::changedFlag() 
{ 
    Flag = 1;     
    // ÀÌ°Ç ½Ã±×³Î Àü´ÞÀ» È®ÀÎÇϱâ À§ÇÑ µð¹ö±ë¿ë     
    // QMessageBox::warning(this, "changed Flag", "Changed Flag"); 
} 
 
fileOpenÀ» È£ÃâÇØ¼­ »õ·Î¿î ÆÄÀÏÀÌ »ý¼ºµÈ´Ù¸é Flag´Â 0À¸·Î ¼³Á¤µÈ´Ù.

2.4.2 fileNew
»õ·Î¿î ¿¡µðÅÍâÀ» »ý¼ºÇÑ´Ù.
void Edit::fileNew() 
{ 
    Edit *ed = new Edit; 
    ed->show(); 
 

2.4.3 fileOpen
ÆÄÀÏÀ» ¿©´Â ÇÔ¼ö´Ù. ÀÌ ÇÔ¼öÀÇ ÀÛ¼ºÀ» À§Çؼ­ 4°³ÀÇ Å¬·¡½º°¡ »ç¿ëµÉ °ÍÀÌ´Ù.
  1. QFile : ÆÄÀÏÀÇ ¿­±â, ¾²±â, Àбâµî ÆÄÀÏ Á¦¾î°ü·Ã
  2. QFileDialog : ÆÄÀÏ ¼±Åà ´ëȭâ ÀÎÅÍÆäÀ̽º¸¦ Á¦°ø
  3. QTextStream : ¹®ÀÚ¿­ ½ºÆ®¸² Á¦¾î¸¦ À§ÇÑ Å¬·¡½º·Î ÆÄÀÏ·Î ºÎÅÍ ÀоîµéÀÎ ¹®ÀÚ¿­À» À§Çؼ­ »ç¿ëÇÑ´Ù.
  4. QMessageBox : ¹®Á¦°¡ ¹ß»ýÇßÀ» ¶§ Á¤º¸¸¦ Ãâ·ÂÇϱâ À§ÇÑ ¸Þ¼¼Áöâ

À§ÀÇ Å¬·¡½º¸¦ »ç¿ëÇϱâ À§Çؼ­ ´ÙÀ½°ú °°Àº Çì´õÆÄÀÏÀ» Ãß°¡½Ã۵µ·Ï ÇÏÀÚ.
#include <qfile.h> 
#include <qfiledialog.h> 
#include <qtextstream.h> 
#include <qmessagebox.h> 
#include <qstatusbar.h> 
 

´ÙÀ½Àº fileOpen ÇÔ¼ö´Ù. ¼³¸íÀº ÁÖ¼®À¸·Î ´ë½ÅÇϰڴÙ.
void Edit::fileOpen() 
{ 
    // ÆÄÀÏ ¼±Åà ´ëÈ­»óÀÚ¸¦ ¿¬´Ù. 
    QString filename = QFileDialog::getOpenFileName(QString::null, QString::null, this); 
    // ¸¸¾à ÆÄÀÏÀ̸§ÀÌ NULLÀÌ ¾Æ´Ï¶ó¸é ÆÄÀÏÀ» Àбâ Àü¿ëÀ¸·Î »ý¼ºÇÑ´Ù. 
    // ÀÌ¹Ì ÆÄÀÏÀÌ Á¸ÀçÇÑ´Ù¸é Á¸ÀçÇÏ´Â ÆÄÀÏÀ» ¿¬´Ù.  
    if (!filename.isEmpty()) 
    { 
        QFile file(filename); 
        if(!file.open(IO_ReadOnly)) 
            return; 
 
        // ÆÄÀÏÀÌ ¿­·È´Ù¸é ÆÄÀÏÀÇ ³»¿ëÀ» ½ºÆ®¸²¿¡ ºÙÀδÙ. 
        QTextStream stream(&file); 
 
        // ½ºÆ®¸²À¸·Î ºÎÅÍ ³»¿ëÀ» Àоî¿Í¼­ textEdit¿¡ Ãâ·ÂÇÑ´Ù.  
        textEdit->setText(stream.read()); 
        file.close(); 
 
        Flag = 0; 
        setCaption(filename); 
        statusBar()->message("File open success!!", 4000); 
    } 
} 
 

2.4.4 fileSave
void Edit::fileSave() 
{ 
    // ÆÄÀÏ ¼±Åà ´ëȭâÀ» ¶ç¿î´Ù. 
    int quest; 
    QString filename = QFileDialog::getSaveFileName(QString::null, QString::null, this); 
    if (!filename.isEmpty()) 
    { 
        QFile file(filename); 
        // ¸¸¾à °°Àº À̸§ÀÇ ÆÄÀÏÀÌ ÀÌ¹Ì Á¸ÀçÇÑ´Ù¸é       
        // µ¤¾î¾µ°ÇÁö¸¦ ¹°¾îº¸µµ·Ï ÇÑ´Ù.        if (file.exists()) 
        { 
            quest = QMessageBox::question(this, "WARNING", 
                filename+" File exist\nOverwrite ?","Yes", "No", "Cancel", 1, 1); 
            if (quest != 0) 
            { 
                return ; 
            } 
        } 
        if (!file.open(IO_WriteOnly)) 
        { 
            QMessageBox::warning(this, "file Open Error\n\n", filename); 
        } 
        QTextStream stream(&file); 
 
        stream << textEdit->text(); 
        setCaption(filename); 
        file.close(); 
        Flag = 0; 
        statusBar()->message("File save success!!", 4000); 
    } 
} 
 

2.4.5 fileExit
Á¾·á ÇÔ¼ö´Ù. close¸¦ È£ÃâÇØ¼­ Á¾·áÇÑ´Ù. Á¾·áÀü¿¡ ÇöÁ¦ textEditÀ§Á¬ÀÇ ³»¿ëÀÌ º¯°æµÇ¾ú´ÂÁö È®ÀÎÇØ¼­ º¯°æµÇ¾ú´Ù¸é º¯°æµÈ ³»¿ëÀ» ¾î¶»°Ô ÇÒ°ÍÀÎÁö ¹°¾îº¸µµ·ÏÇÑ´Ù.
    int ch; 
 
    // Á¾·áÇÒ¶§ ÆÄÀÏÀÇ ³»¿ëÀÌ º¯°æµÇ¾ú´ÂÁö È®ÀÎÇÑ´Ù.   
    // ÆÄÀÏÀÇ ³»¿ëÀÌ º¯°æµÇ¾ú´Ù¸é ÀúÀåÇÒ °ÍÀÎÁö¸¦ ¹°¾î º»´Ù.  
    if (Flag) 
    { 
        ch = QMessageBox::warning(this, "Changed File", "SAVE FILE?", "Yes", "No", "Cancel", 1,1); 
        if (ch == 0) 
        { 
            fileSave(); 
        } 
        if (ch == 2) 
            return; 
    } 
    this->close(); 
 

2.4.6 helpAbout
´ëÇÏ¿© ´ëÈ­»óÀÚ¸¦ ¶ç¿î´Ù.
void Edit::helpAbout() 
{ 
    // ´ëÇÏ¿©.  
    QMessageBox::about(this,  "About", "Edit Sample Program"); 
} 
 

2.4.7 changedFlag
»ç¿ëÀÚ Á¤ÀÇ ½½·ÔÀ¸·Î ÅØ½ºÆ®ÀÇ ³»¿ëÀÌ º¯°æµÉ °æ¿ì Ç÷¡±×¸¦ 1·Î ¼³Á¤ÇÑ´Ù.
void Edit::changedFlag() 
{ 
    Flag = 1; 
} 
 

2.5 °á·Ð

ÀÌ»ó °£´ÜÇÏ°Ô ¾Ë¾Æº¸¾Ò´Ù. ÇÁ¸°Æ®, ¹®ÀÚ¿­ ã±â, ±âŸ ÀÌ·±Àú·± »ç¼ÒÇÑ ±¸ÇöÀÌ ¸¹ÀÌ ¹ÙÁ®Àִµ¥, ÀÌ´Â °øºÎÇϸ鼭 Â÷Â÷ ºÙ¿©°¡±â·Î ÇϰڴÙ.

2.5.1 ÇØ¾ßÇÒÀÏ
  1. kdevelop¿Í designer¸¦ ÅëÇÑ °³¹ß
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.