Wxglade-Tutorial
wxGlade - a GUI builder for wxWidgets
http://wxglade.sourceforge.net/tutorial.php ÀÇ ¹ø¿ªº»ÀÌ´Ù.
ÁÖÀÇ : ÀÌ ¹öÁ¯ÀÇ Æ©Å͸®¾óÀº CVSÀÇ ÇöÀç¹öÁ¯¿¡ ¸ÂÃß¾îÁ® ÀÖÀ¸¹Ç·Î ÇöÀçÀÇ wxGladeÀÇ ¸±¸®Áî ¹öÁ¯°ú´Â Â÷ÀÌ°¡ ÀÖÀ» ¼ö ÀÖ´Ù.
wxGlade Tutorial
ÀÌ Æ©Å͸®¾óÀÇ ¸ñÀûÀº wxGlade¿¡ ´ëÇÑ Àü¹ÝÀûÀÎ »çÇ×°ú ±â´É¿¡ ´ëÇØ ´ë·«ÀûÀ¸·Î ¾Ë¾Æº¸±â À§ÇÑ °ÍÀÌ´Ù.
ªÀº ³»¿ë¿¡µµ ºÒ±¸ÇÏ°í, Â÷±ÙÂ÷±ÙÈ÷ ¸Å´º¹Ù¿Í »óŹ٠±×¸®°í notebook°°Àº ÄÁÆ®·ÑÀÌ Æ÷ÇÔµÈ frameÀ» ¾î¶»°Ô ¸¸µå´ÂÁö¸¦ ÅëÇؼ ¾î¶»°Ô ÇÁ·Î±×·¥ÀÌ µ¿ÀÛÇÏ´ÂÁö¿¡ ´ëÇØ ¾Ë ¼ö ÀÖÀ» °ÍÀÌ´Ù.
1. frame »ý¼º
»õ ÇÁ·¹ÀÓÀ» ¸¸µé±â À§Çؼ´Â, "ÆÈ·¿Æ®"¿¡¼ Àû´çÇÑ(¿ªÀÚÁÖ:ÇÁ·¹ÀÓ) ¹öÆ°À» Ŭ¸¯ÇÑ´Ù. »õâ¿¡ ÇØ´çÇϴ Ŭ·¡½ºÀÇ À̸§À» ¿ä±¸Çϴ âÀÌ ¶ã°ÍÀÌ´Ù. À̸§À» ÀÔ·ÂÇϵÇ, ¹Ýµå½Ã pythonÀ̳ª c++ Ŭ·¡½º¿¡ »ç¿ëÇÒ¼ö ÀÖ´Â(¹®¹ýÀûÀ¸·Î ¸Â´Â) À̸§À̾î¾ß ÇÑ´Ù.
ÀÌÁ¦ ÇÁ·¹ÀÓâÀÌ º¸ÀÌ°í, ¼Ó¼ºÃ¢ÀÌ ¹æ±Ý »ý¼ºµÈ widgetÀÇ ¼Ó¼ºÀ» º¸¿©ÁÙ°ÍÀÌ´Ù. ÀÌÁ¦ frameÀÇ Á¦¸ñ(ÇØ´ç ¿ÀºêÁ§Æ®ÀÇ À̸§°ú µ¿ÀÏÇØÁü)À» ¹Ù²Ù¾î º¸ÀÚ. "Frame with notebook" À̶ó°í ÀÔ·ÂÇØ º¸ÀÚ.
Á¦¸ñ ÀԷ¶õÀ» ¹þ¾î³ª¸é ¹Ù·Î Àû¿ëµÇ¾î Áú °ÍÀÌ´Ù.
2. ¸Å´º¹Ù ¸¸µé±â
ÇöÀç ÇÁ·¹ÀÓÀÇ ¼Ó¼ºÃ¢À» ¼±ÅÃÇÑ´Ù. ±×¸®°í ÇØ´ç ÇÁ·¹ÀÓ¿¡¼ ¸Å´º¹Ù »ý¼ºÀ» ¼±ÅÃÇÑ´Ù.
¼Ó¼ºÃ¢ÀÌ º¯Çϸç, ¸Å´º¹ÙÀÇ ¼Ó¼ºÀ» º¸¿©Áֱ⠽ÃÀÛÇÑ´Ù. : ¸Å´º ¹öÆ° ¼öÁ¤À» Ŭ¸¯ÇÏ°í ¸Å´º ¿¡µðÅÍ·Î ¸Å´º¸¦ ¸î°³ Ãß°¡ÇÑ´Ù.
"add" ¹öÆ°À» ´·¯ ¸Å´º¸¦ Ãß°¡ÇÑ´Ù. ±×¸®°í Label Ç׸ñÀ» "File"·Î ¼öÁ¤ÇÑ´Ù.
ÀÌÁ¦ File ¸Å´º¿¡ ÇϺθŴº¸¦ Ãß°¡ÇØ º¸ÀÚ : "Add"¹ö틍¸¦ Ŭ¸¯ÇÏ°í, LabelÇ׸ñÀ» "New"·Î ¹Ù²Û´Ù.
±×¸®°í > ¹öÆ°À» Ŭ¸¯ÇÑ´Ù. : New¸Þ´º°¡ File¸Þ´º ÇϺθ޴º·Î Ç¥½ÃµÇ±â À§ÇØ ¾ÈÂÊÀ¸·Î µé¿©¾²±â µÈ°ÍÀ» º¼ ¼ö ÀÖ´Ù.
3. »óŹ٠¸¸µé±â
¼Ó¼ºÃ¢Àº ÇöÀç »óŹÙÀÇ ¼Ó¼ºÀ» ³ªÅ¸³»°í ÀÖ´Ù. : ¼öÁ¤Çϱâ À§ÇØ ´õºíŬ¸¯ÇÑ´Ù. "Created with wxGlade!"·Î ¼öÁ¤ÇÑ´Ù. size ¼Ó¼ºÀº ÇØ´ç ¼Ó¼ºÀÇ Â÷¿øÀ» ³ªÅ¸³½´Ù. ÃÖ¼ÒÇÑ ÇϳªÀÇ Çʵå´Â -1ÀÇ °ªÀ» °¡Á®¾ß ÇÑ´Ù.(³²Àº °ø°£À» ¸ðµÎ ä¿ì´Â ÇʵåÀÌ´Ù.)
4. notebook ¸¸µé±â
ÀÌÁ¦, ÇöÀç ÇÁ·¹ÀÓ¿¡ notebookÀ» Ãß°¡ÇØ º¸ÀÚ. Ãß°¡ÇÏ°Ô µÇ¸é ÇöÀç ÇÁ·¹ÀÓÀÌ BoxSizer°¡ ¸· Ãß°¡µÈ°ÍÀ» º¼¼ö ÀÖ´Ù. ±× ÀÌÀ¯´Â ¸ðµç ÄÁÅ×ÀÌ³Ê À§Á¬(container widget)Àº ÇϺΠÀ§Á¬(sub-widgets)À» Ãß°¡Çϱâ À§Çؼ´Â Sizer¸¦ °¡Áö°í ÀÖ¾î¾ß Çϱ⠶§¹®ÀÌ´Ù. ±×¸®°í ÀϹÝÀûÀ¸·Î ÇÁ·¹ÀÓÀº ÇϳªÀÇ ÀÚ½Ä À©µµ¿ì¸¦ °¡Áö°Ô µÇ¹Ç·Î wxGlade´Â 1-solt BoxSizer¸¦ ÀÚµ¿Ãß°¡ ÇÑ´Ù.
ÀÌÁ¦ notebookÀ» Ãß°¡ÇÑ´Ù. ±×·¯±â À§Çؼ´Â ÇÁ·¹ÀÓÀ» ¼±ÅÃÇÑÈÄ ÆÈ·¿Æ®¿¡¼ Notebook ¹öÆ°À» Ŭ¸¯ÇÑ´Ù. ±×¸®°í sizerÀ§·Î µå·¡±× ÇÑ´Ù. ±×·¯°í ³ª¸é notebook ÅÇÀÇ À§Ä¡¸¦ °í¸£´Â âÀÌ ¶á´Ù. ¼±ÅÃÇÑ´Ù.
ÀÌÁ¦ ¼Ó¼ºÃ¢À» ¼±ÅÃÇغ¸. ÀÌÁ¦ Ŭ·¡½º À̸§ÀÌ wxNoteBookÀΰÍÀ» º¼¼öÀÖ´Ù. ´Ù½Ã¸»ÇØ ¿ÀºêÁ§Æ®ÀÇ Å¬·¡½º À̸§ÀÌ´Ù. ¸¸¾à °ªÀ» ¼öÁ¤Çϸé wxNotebook Ŭ·¡½º¸¦ »ó¼Ó¹ÞÀº »õ·Î¿î Ŭ·¡½º¸¦ ¸¸µé°Ô µÈ´Ù.
ÇÁ·Î±×·¥ µ¿À۽ÿ¡´Â ¾Æ¹«·± ¿µÇâÀÌ ¾øÀ¸³ª »õ·Î »ý¼ºµÈ Ŭ·¡½ºÀÇ Á¤ÀÇµÈ Äڵ带 »ý¼ºÇÏ°Ô µÈ´Ù wxGlade°¡ »õ·Î¿î Ŭ·¡½º¸¦ À§ÇÑ Äڵ带 »ý¼ºÇϵµ·Ï, »õ·Î »ý¼ºµÈ MyNotebook Ŭ·¡½ºÀÇ °ªÀ» ¼öÁ¤ÇØ º¸ÀÚ
ÁÖÀÇ : À§ÀÇ ¼³¸íÀº ¼ÒÀ§ "container" widgets ¿¡¸¸ ÇØ´çµÈ´Ù. ´Ù½Ã ¸»ÇØ ÀÚ½ÄÀ» ¼ÒÀ¯ÇÒ¼ö ÀÖ´Â °Í¸¸ ÇØ´çµÈ´Ù. contolÀº ¾à°£ ´Ù¸£´Ù. ¿¹¸¦ µé¸é..
Æгξȿ¡ ¹öÆ°À» ³Ö¾ú´Ù. wxButton Ŭ·¡½º¸¦ »ç¿ëÇÑ´Ù. »õ·Î »ý¼ºµÈ MyCustomButtonÀÇ ¾î¶² °ªÀ» ¼öÁ¤Çϸé wxGlade´Â wxButton Ŭ·¡½º¸¦ »ó¼Ó¹ÞÀº MyCustomButtonÀÌ ¾îµò°¡¿¡ Á¤ÀÇ µÇ¾îÀÖ°í, ±× Ŭ·¡½¼´Â ÀϹÝÀûÀÎ wxButton Ŭ·¡½º¿Í ȣȯµÇ´Â »ý¼ºÀÚ¸¦ °¡Á³´Ù°í »ý°¢ÇÏ°í ±× ºÎºÐ¿¡ ´ëÇÑ Äڵ带 »ý¼ºÇÑ´Ù. ¾Æ·¡°¡ ±× ¿¹ÀÌ´Ù.
button_1 = MyCustomButton(parent, id, "Label") instead of
button_1 = wxButton(parent, id, "Label") ÁÖÀÇ 2: XRC Ãâ·Â¿¡ À־ ±âÁ¸ÀÇ °Í°ú Ŭ·¡½ºÀÇ °ªÀÌ ´Ù¸£¸é ±× °´Ã¼°¡ »ó¼Ó¹ÞÀº °ÍÀ̶ó°í »ý°¢ÇÑ´Ù. À§ÀÇ ¿¹Á¦¿¡ ÇØ´çÇÏ´Â Ãâ·ÂÀÌ ´ÙÀ½°ú °°´Ù.
<object class="wxButton" name="button_1" subclass="MyCustomButton"/>
±×·¯¹Ç·Î XRC ouput¿¡¼ ÁÖÀÇÇÒÁ¡Àº ¼ÒÀ§ "top-level" widget(frame, dialog, ...)µéÀ» Ãß°¡ÇÒ¶§ Ŭ·¡½º°ªÀ» ÃʱâÄ¡·Î ¸®¼ÂÇØ¾ß ÇÔÀ» ±â¾ïÇؾßÇÑ´Ù. ±× ÀÌÀ¯´Â wxGlade´Â »ó¼ÓµÈ Ŭ·¡½º·Î ÀνÄÇϱ⠶§¹®ÀÌ´Ù.
5. notebook page Ãß°¡, »èÁ¦ Çϱâ
ÀÌ µ¿ÀÛÀº statusbarÀÇ Çʵ带 ´Ù·ç´Â°Í°ú °ÅÀÇ µ¿ÀÏÇÏ´Ù. notebook controlÀÇ ÅÇ ¼Ó¼ºÀº ÆäÀÌÁöÀÇ °ª°ú ±× Á¦¸ñÀ» ¼³Á¤ÇÑ´Ù.("Apply" Çϴ°ÍÀ» ÀØÁö ¸»¶ó!)
6. ÄÁÆ®·Ñ Ãß°¡Çϱâ.
ÀÌÁ¦ ÀÌ ÂªÀº tutorialÀÇ ¸¶Áö¸· ÆÄÆ®¿¡ µµ´ÞÇß´Ù. : notebookÀÇ Ã¹ÆäÀÌÁö¿¡ ¸î¸î ÄÁÆ®·ÑÀ» Ãß°¡ÇØ º¸ÀÚ.
text area ¿Í µÎ°³ÀÇ ¹öÆ°À» Ãß°¡ÇÒ °ÍÀÌ´Ù. ÀÌ µ¿ÀÛµéÀº sizerµéÀ» ÀÌ¿ëÇؼ °´Ã¼µéÀ» layoutÇϴ°Ͱú wxGladeÀÇ cut & paste Áö¿øÀ» º¸°Ô µÈ´Ù.
Àü¿¡ ¾ê±âÇßµíÀÌ container¾È¿¡ widgetsÀ» Ãß°¡Çϱâ À§Çؼ´Â sizer¸¦ ÀÌ¿ëÇØ¾ß ÇÑ´Ù.
ÀÌÁ¦ ÄÜÆ®·ÑµéÀÌ Ãß°¡µÉ notebookÀÇ Ã¹ÆäÀÌÁö¿¡ sizer¸¦ Ãß°¡ÇØ º¸ÀÚ.
ÀÌÁ¦ ÆÈ·¿¿¡¼ BoxSizer ¹öÆ°À» Ŭ¸¯ÇÑ´Ù. ¸¶¿ì½º¸¦ ÆäÀÌÁö ¾ÈÀ¸·Î À̵¿½ÃÅ°¸é Æ÷ÀÎÅÍ°¡ ½ÊÀÚ¸ð¾çÀÌ µÈ´Ù. ±×¸®°í ÆäÀÌÁö¿¡ sizer¸¦ ¶³¾î¶ß¸°´Ù. ÀÌÁ¦ Ãß°¡ÇÒ sizer¿¡ ´ëÇÑ ¸î°¡Áö ¼Ó¼ºÀ» ¹¯´Â âÀÌ ¶ã°ÍÀÌ´Ù. ÇöÀç°ªÀ» ¼öÁ¤ÇÑ´Ù. 2ÄÂ¥¸® vertical box·Î ¸¸µç´Ù. ÀÌ°ÍÀº °Á¦Á¶Ç×Àº ¾Æ´Ï´Ù. sizerÀÇ Ä¼ö´Â ¾ðÁ¦µç ¹Ù²ð¼ö ÀÖ´Ù. ÀüÀڴ Ŭ·¡½º ¼Ó¼ºÀ» ¼öÁ¤ÇÏ´Â °ÍÀÌ°í, ÈÄÀÚ´Â sizerÀÇ "handle"¹öÆ° À§¿¡¼ ¿ìŬ¸¯ Çϰųª widget Æ®¸®¿¡¼ ÇØ´ç ³ëµå¸¦ ÅëÇؼ Æ˾÷¸Þ´º¸¦ ¶ç¿ï ¼ö ÀÖ´Ù. (´Ù½Ã¸»ÇØ. wxGlade¿¡¼´Â °ÅÀÇ ¸ðµç °´Ã¼¿¡ ´ëÇÑ ¸Þ´º¸¦ ÀÌ·±½ÄÀ¸·Î ¶ç¿ï¼ö ÀÖ´Ù.)
TextCtrl ¹öÆ°À» Ŭ¸¯ÇÑÈÄ¿¡ sizerÀÇ Ã¹¹ø° ½½·Ô¿¡ ³Ö¾îº¸ÀÚ.
±âº»Á¤·ÄÀº ¿À¸¥ÂÊÁ¤·ÄÀÌ´Ù. layoutÀ» ¼öÁ¤Çϱâ À§Çؼ´Â TextCtrlÀÇ layout¼Ó¼ºÅÇÀ» ¼±ÅÃÇÑ´Ù. AlignmentÀÇ wxEXPAND °ªÀ» 1·Î ¼öÁ¤ÇÑ´Ù.
¿©·¯ÁÙÀ» Ãâ·ÂÇÏ°í ½ÍÀ¸¸é Style(Widget ÅÇ¿¡¼)ÀÇ wxTE_MULTILINE ÀÇ Ã¼Å©¹Ú½º¸¦ üũÇÑ´Ù. : wxGlade¿¡¼´Â ´ëºÎºÐÀÇ Style ¼Ó¼ºÀÇ ¼öÁ¤Àº ¹Ù·Î º¸ÀÌÁö´Â ¾ÊÁö¸¸ »ý¼ºµÈ Äڵ忡´Â Àû¿ëÀÌ µÈ´Ù.
µÎ¹ø° ½½·Ô¿¡ horizontal SizerÀ» ¹èÄ¡ÇÑ´Ù. ¿©±â´Â ¹öÆ°ÀÌ µÎ°³ µé¾î°£´Ù. ½½·ÔÀÇ ¼ýÀÚ´Â 3À¸·Î ¼öÁ¤ÇÑ´Ù. µÎ ¹öÆ° »çÀÌ¿¡ °ø°£À» ÁÖ±â À§ÇÑ °ÍÀÌ´Ù. (ȸ鿡¼ µÑ »çÀÌ°¡ ³Ê¹« ºÙ°Ô ÇÏÁö ¾Ê±â À§ÇؼÀÌ´Ù.)
ù¹ø° ½½·Ô¿¡ Àû´çÇÑ ¹öÆ°À» »õ·Î ³Ö´Â´Ù. µÎ¹ø° ¹öÆ°À» Ãß°¡Çϱâ À§Çؼ Ŭ¸³º¸µå¸¦ »ç¿ëÇÒ °ÍÀÌ´Ù. ù¹ø° ¹öÆ°ÀÇ Æ˾÷¸Þ´º¿¡¼ Copy itemÀ» Ŭ¸¯ÇÑ´Ù.(¾Æ´Ï¸é ±×Àú ¹öÆ°À» ¼±ÅÃÇÑ ÈÄ Ctrl+C¸¦ ´©¸¥´Ù.), ÀÌÁ¦ ¸¶¿ì½º¸¦ ¼¼¹ø° ½½·Ô¿¡¼ ½½·Ô¿¡ Æ˾÷¸Þ´º¿¡¼ º¹»çµÈ widgetÀ» ºÙÀ̱â À§ÇØ Paste itemÀ» Ŭ¸¯ÇÑ´Ù.(¾Æ´Ï¸é, ºó ¼¼¹ø° ½½·ÔÀ» ¼±ÅÃÇÑ ÈÄ Ctrl+V¸¦ ´©·ç°Å³ª, ºó ¼¼¹ø° ½½·Ô¿¡¼ ¸¶¿ì½º ¹öÆ°ÀÌ 3°³¶ó¸é °¡¿îµ¥ ¹öÆ°À» ´©¸£¸é µÈ´Ù.)
Àû´çÇÑ °Å¸®¸¦ À¯ÁöÇϱâ À§ÇØ, ÀÌÁ¦ µÎ ¹öÆ° »çÀÌ¿¡ spacer¸¦ Ãß°¡ÇÑ´Ù.
ÀÌÁ¦ ¸¶Áö¸·À¸·Î ¹öÆ°ÀÌ µé¾îÀÖ´Â horizontal SizerÀÇ ¼Ó¼º¿¡¼ wxEXPAND°ªÀ» 0À¸·Î ¼öÁ¤ÇÏ°í, wxALIGN_CENTER_HORIZONTALÀ» üũÇÏ°í,
¹öÆ°À» text area¿Í ¾Æ·¡ÂÊ notebookÀ¸·Î ºÎÅÍ ºÐ¸®Çϱâ À§ÇØ À§ÂÊ(wxTOP)°ú ¾Æ·¡ÂÊ(wxBOTTOM)ÀÇ border°ªÀ» 4·Î ¼öÁ¤ÇÑ´Ù.
NOTE on widgets' ids: ¸ðµç wxWindows widgetÀº event handlingµî¿¡¼ »ç¿ë µÇ¾îÁö´Â id°ªÀ» °¡Áö°í ÀÖ´Ù.
±×·¯¹Ç·Î wxGladeÀÇ °¢ widgetÀº id ¼Ó¼ºÀ» °¡Áö°í ÀÖ´Ù. ±× °ªÀº ´ÙÀ½°ú °°Àº °ªµéÀÌ ¿Ã ¼ö ÀÖ´Ù.
7. Last changes ¶¸¶Áö¸·À¸·Î, ÇöÀç layoutÀÌ ¸¾¿¡ µéÁö ¾ÊÀ¸¸é, ¹öÆ°µéÀ» test area ¾Æ·¡°¡ ¾Æ´Ï¶ó À§¿¡ µÑ ¼öµµ ÀÖ´Ù.¾î¶»°Ô Çϴ°¡? °£´ÜÇÏ´Ù. : ¹öÆ°µéÀÌ µé¾îÀÖ´Â SizerÀÇ Pos¼Ó¼ºÀ» ¼öÁ¤ÇÑ´Ù. test area ÀÌÀü¿¡ sizer¸¦ µÎ±â À§ÇØ °ªÀ» 0À¸·Î ¼öÁ¤ÇÑ´Ù. ½±Áö ¾ÊÀº°¡?
Now our window is complete: all we have to do is set a reasonable initial size for it. To do this, resize the frame until you find a good size, and then activate the Size property.
8. Code generation ¶ÄÚµå »ý¼º ÀÌÀü¿¡ ÀúÀåÇÏÀÚ. main wxGlade À©µµ¿ìÀÇ File menu¿¡¼ Save As... À» ¼±ÅÃÇÑ´Ù.¹Ýµå½Ã ÇÊ¿äÇÑ ÀÛ¾÷Àº ¾Æ´ÏÁö¸¸ À§Çè¿ä¼Ò¸¦ ÁÙÀÌ´Â ¾ÆÁÖ ÁÁÀº °øºÎ´Ù. ¾ÆÁ÷ wxGlade´Â ¾ÆÁ÷ ±× Á¤µµ·Î ÇÁ·Î±×·¥ÀÌ ¼º¼÷ÇØ ÀÖÁö´Â ¾Ê´Ù.
ÀÌÁ¦ code¸¦ »ý¼ºÇØ º¸ÀÚ : tree widget¿¡¼ Application Ç׸ñÀ» ¼±ÅÃÇÏÀÚ(¸ÇÀ§¿¡ ÀÖ´Ù.) ¼Ó¼ºÃ¢¿¡ ApplicationÅÇÀÌ º¸ÀδÙ. ÀÌ ÆгÎÀº code generation ¿É¼ÇÀ» °¡Áö°í ÀÖ´Ù.
9. Notes ¶À̹ø¿£ wxGlade¿¡ ´ëÇØ ¹Ýµå½Ã ¾Ë¾Æ¾ß ÇÒ °Íµé¿¡ ´ëÇØ ¾Ë¾Æº¸ÀÚ.(¾Ë·ÁÁø ¹ö±×, ÇÑ°è, ¼û°ÜÁø ±â´É, tips and tricks...) tutorial¿¡¼ ´Ù·çÁö ¸øÇß´ø..
Á߿伺¿¡ µû¶ó ´ëÃæ Á¤·ÄÇØ º¸¾Ò´Ù..
Python ¶Ç´Â C++ code¸¦ »ý¼ºÇÒ ¶§, Ãâ·Â ÆÄÀÏÀÌ Á¸ÀçÇϸé, wxGlade´Â ±âº»ÀûÀ¸·Î ¸ðµç ³»¿ëÀ» ÀúÀåÇÏÁö ¾Ê°í, ¾Æ·¡ÀÇ ÄÚµå »çÀÌÀÇ ³»¿ë¸¸ ÀúÀåÇÑ´Ù.
# begin wxGlade: ...
# end wxGlade
name: value(invalid entries will be silently ignored): for each of these lines, the output will contain a <name>value</name>property of the XRC object. python xrc2wxg.py xrc_file.xrc wxg_file.wxg(¸¸¾à wxg_file.wxg°¡ »ý·«µÇ¸é ±âº»°ªÀ¸·Î xrc_file.wxg°¡ µÈ´Ù.), ±×·¯³ª ÀÌ°ÍÀº ¸î°¡Áö Á¦ÇÑÀ» µÎ°í ÀÖ´Ù.. ¾Ë¾Æº¸ÀÚ.
python wxglade.py -hat your shell's prompt. Alberto Griggio
¹ø¿ª : ½É½ÂÁØ, dwYoon¾È
dwYoon´Ô Á¤¸®ÇØ Áּż °¨»çÇÕ´Ï´Ù.
|
With clothes the new are best, with friends the old are best. |