°ÁÂ
|
HOME > °ÁÂ > |
°ÁÂ| ¸®´ª½º ¹× ¿ÀǼҽº¿¡ °ü·ÃµÈ °Á¸¦ º¸½Ç ¼ö ÀÖ½À´Ï´Ù.
|
wxPythonÀ» ÀÌ¿ëÇÑ °£´ÜÇÑ ¾îÇø®ÄÉÀ̼Ç
|
|
 Á¶È¸ : 11,317
|
wxPythonÀ» ÀÌ¿ëÇÑ °£´ÜÇÑ ¾îÇø®ÄÉÀÌ¼Ç |
|
|
¼Ò°³¿Í ÀÛµ¿¿ø¸® |
 | |
wxPythonÀº ±¸Á¶ÀûÀÌ°í ¹è¿ì±â ½¬¿î Python¾ð¾î¸¦ ÀÌ¿ëÇÏ¿© GUI(Graphical User Interface)¸¦ ½Å¼ÓÇÏ°í °£·«È÷ Á¦ÀÛÇϵµ·Ï µµ¿ÍÁÖ´Â GUI ÀúÀÛµµ±¸(toolkit)ÀÌ´Ù. wxPythonÀº Å©·Î½º Ç÷§Æû GUI¶óÀ̺귯¸®ÀÎ wxWidgets C++class ¸¦ Python¿¡¼ Áö¿ø°¡´É Çϵµ·Ï Á¦ÀÛÇÑ °ÍÀÌ´Ù.
¡Ø PythonÀ» Á¢Çغ¸Áö ¾Ê¾Ò´Ù¸é Python Æ©Å丮¾óÀ» Àо±â ¹Ù¶õ´Ù. C¿Í C++ ȤÀº ´Ù¸¥ ¾ð¾î¿¡ ¾î´À Á¤µµ Àͼ÷ÇÏ´Ù¸é 2~3ÀÏ Á¤µµ¿¡ Python Äڵ带 ÃæºÐÈ÷ ÀÌÇØ ÇÒ ¼ö ÀÖ´Ù°í ÇÑ´Ù.

Python°ú ¸¶Âù°¡Áö·Î wxWindows ¿ª½Ã Open Source À̹ǷΠ»ç¿ë¿¡ ¾Æ¹«·± Á¦ÇÑÀÌ ¾ø´Ù.(wxWindows SourceÀÚü¸¦ ¼öÁ¤ÇÏ¿© »ç¿ëÇÏ´õ¶óµµ ¾Æ¹«·± ¹®Á¦°¡ ¾ø´Ù)
wxWindows¸¦ ±â¹ÝÀ¸·Î ¸¸µé¾îÁø wxPython ¿ª½Ã Open Source Project·Î ÁøÇà °³¹ßµÇ°í ÀÖ´Ù.
wxpPythonÀº ¿äÁòÀÇ Linux ¹èÆ÷ÆÇ¿¡ ±âº»À¸·Î žÀçµÇ¾î Á¦°øµÇ¹Ç·Î Linux ¼³Ä¡¸¸À¸·Îµµ »ç¿ëÀÌ °¡´ÉÇÏ´Ù. ÇÏÁö¸¸ ¼³Ä¡µÇ¾î ÀÖÁö ¾ÊÀº Linux³ª Windows ±âŸ OS¿¡¼´Â python, wxPythonÀ» ¼³Ä¡ ÇÏ¿© ÁÖ¾î¾ßÇÑ´Ù.(pythonÀº http://www.python.org¿¡¼ ´Ù¿î¹ÞÀ¸¸é µÇ°í, wxPythonÀº http://www.wxpython.org¿¡¼ ´Ù¿î¹ÞÀ¸¸é µÈ´Ù. wxPython¼³Ä¡¸¸À¸·Î pythonÀÌ ¼³Ä¡µÇ´Â °æ¿ìµµ ÀÖÁö¸¸ °¢°¢ÀÇ ÆÐŰÁö¸¦ ¼³Ä¡ÇÏ¿© »ç¿ëÇÏ´Â °ÍÀÌ »ç¿ëÀÚ È¯°æ¿¡ ÃÖÀûÈ ÇÒ ¼ö ÀÖ´Â ¹æ¾ÈÀ̶ó »ý°¢µÈ´Ù.)
|
Ư¡ ¹× ¿ª»ç |
 | |
¤¡. ¹è¿ì±â ½±´Ù.
C¿Í C++ ȤÀº ´Ù¸¥ ¾ð¾î¿¡ ¾î´À Á¤µµ Àͼ÷ÇÏ´Ù¸é 2~3ÀÏ Á¤µµ¿¡ Python Äڵ带 ÃæºÐÈ÷ ÀÌÇØ ÇÒ ¼ö ÀÖ´Ù°í ÇÑ´Ù. ÀÌ·¸°Ô ½¬¿î ¾ð¾î·Î ÀÛ¼ºµÇ¾îÁö´Â wxPythonÀº ¹è¿ì±â¿¡ ¸Å¿ì ÆíÇÏ°í ½±´Ù´Â Á¡ÀÌ °¡Àå Å« ÀåÁ¡À̶ó ÇϰڴÙ. ¶ÇÇÑ PythonÀº ¾ÆÁÖ °·ÂÇÑ ¾ð¾î·Î½áÀÇ ±â´Éµµ °¡Á³±â¿¡ wxPython ¿ª½Ã °·ÂÇÑ ´É·ÂÀ» ¹ßÈÖÇÒ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù.
¤¤. Àç¹ÌÀÖ´Ù.
°³¹ßÀÚ¶ó¸é ¾ð¾îÀÇ ¼±Åÿ¡ ÀÖ¾î ±â¿ÕÀÌ¸é ¾ð¾î¸¦ ¹è¿ì°í »ç¿ëÇϱ⿡ Æí¸®ÇÔ°í Àç¹Ì³²ÀÌ ¼û°ÜÁ® ÀÖ¾î¾ß ÇÒ °ÍÀÌ´Ù. ±¸½À¿¡ ¾ô¸Å¿© Àְųª ±¸ÅÂÀÇ¿¬ÇÏ´Ù¸é ¾ð¾î¸¦ ¹è¿ì°í »ç¿ëÇÏ´Â »ç¶÷ÀÇ ÀÔÀå¿¡¼´Â À̺¸´Ù ÇǰïÇÑ ÀÏÀº ¾øÀ» °ÍÀÌ´Ù. ÇÏÁö¸¸ wxPythonÀº °·ÂÇÏ°í °£·«ÇÔ ¸¸ÅÀ̳ª Àç¹Ì°¡ ¼û°ÜÁ® ÀÖ´Â GUI ÀúÀÛµµ±¸ÀÌ´Ù.
¤§. Å©·Î½º Ç÷§Æû ȯ°æ ÁöÇâ
GUI È¸é °³¹ß¿¡¼ Windows ȯ°æÀ» »©³õÀ» ¼ö ¾ø´Ù. ±×·¯¸é¼µµ Linux³ª ´Ù¸¥ ¿©Å¸ÀÇ OSÀÇ GUI¿ª½Ã °í·Á´ë»óÀÌ µÇ¾î¾ßÇÏ´Â °ÍÀÌ Çö½ÇÀÌ´Ù. ÀÌ·¸°Ô ¸ðµç OS Ç÷§Æû¿¡ ±¸¼ÓµÇÁö ¾Ê°í ÀÚÀ¯·ÎÀÌ ±¸ÇöÇÒ ¼ö ÀÖ´Â Å©·Î½º Ç÷§Æûµµ±¸°¡ ÀÖ´Ù¸é ÁÁÀ» °ÍÀÌ´Ù. ÇÏÁö¸¸ ¾ÆÁ÷ ±×·± ¿Ïº®ÇÑ µµ±¸´Â Á¸ÀçÇÏÁö ¾Ê´Ù. ±×·¯³ª ÇöÀç±îÁö ³ª¿Í ÀÖ´Â GUI toolkitÁß¿¡ wxPythonÀÌ ¼±µÎ±×·ì¿¡¼ ´Þ¸®°í ÀÖ´Ù. wxPythonÀº Å©·Î½º Ç÷§Æû ȯ°æÀ» ÁöÇâÇϰí ÀÖ´Ù´Â ¸»ÀÌ´Ù.
¤©. ±â¾÷ȯ°æ¿¡ Àû¿ë °¡´É¼º
ÇÁ·Î±×·¥À» Çϸç Ãë¹Ì·Î ÇÏ´Â »ç¶÷Àº ¾ÆÁÖ µå¹°´Ù. °á±¹ ÇÁ·Î±×·¥Àº ±â¾÷(enterprise)ȯ°æ¿¡ Áö¹èµÉ ¼ö¹Û¿¡ ¾ø´Ù°í ÇÊÀÚ´Â »ý°¢ÇÑ´Ù. ±×·¯±â¿¡ °³¹ßµµ±¸·Î »ç¿ëÇÒ GUI toolkitÀº ±â¾÷ȯ°æ¿¡ ÀûÀýÈ÷ ´ëÀÀÀÌ µÇ¾î¾ß ÇÒ °ÍÀÌ´Ù. wxPythonÀº ÇöÀç ¼ö¸¹Àº ±â¾÷ȯ°æ¿¡¼µµ ÈǸ¢ÇÑ ±â´ÉÀ» ¹ßÈÖÇϰí ÀÖ´Ù.
¤±. ¶óÀ̼¾½º
»ç¿ëÇÒ µµ±¸°¡ ÀÌ¿ÕÀÌ¸é °ø°³µÈ µµ±¸ÀÌ¸é ´õ¿í ÆíÇÒ °ÍÀÌ¸é »ç¿ëÀÚÃþµµ ÈξÀ ³ÐÀ» °ÍÀ̶ó »ý°¢µÈ´Ù. wxPython ¿ª½Ã Open Source ¶óÀ̼¾½º Á¤Ã¥À» µû¸£°í ÀÖÀ¸¹Ç·Î »ç¿ëºñ¿ëÀÇ ºÎ´ãµµ ÁÙÀÏ ¼ö ÀÖ´Ù.
|
»ç¿ë¿ëµµ |
 | |
- GUI ÇÁ·Î±×·¡¹ÖÀÇ ±âº»°³³ä ÀÍÈ÷±â
- Å©·Î½º Ç÷§Æû Áö¿ø GUI ÇÁ·Î±×·¡¹Ö
- Graphical user interface¸¦ °£´ÜÇϰí, ºü¸¥ ½Ã°£ ³» Á¦ÀÛÇϰíÀÚ ÇÒ °æ¿ì
|
°£´ÜÇÑ ¾îÇø®ÄÉÀÌ¼Ç ¸¸µé±â |
 | |
Source 1) Hello World |
#!/usr/bin/python
from wxPython.wx import *
class MyApp(wxApp):
def OnInit(self):
frame = wxFrame(NULL, -1, "Hello from wxPython")
frame.Show(true)
self.SetTopWindow(frame)
return true
app = MyApp(0)
app.MainLoop()
À§ ¼Ò½º¸¦ ½ÇÇàÇÏ¸é ¾Æ·¡ ±×¸²À» º¼ ¼ö ÀÖ´Ù.

|
Source 1 ¼³¸í |
wxPython À» importÇÏ¿© wxPython¿¡¼ Á¦°øÇÏ´Â °¢Á¾ Ŭ·¡½º¿Í ÇÔ¼ö¸¦ À̿밡´ÉÇÏ°Ô ¸¸µç´Ù.
wxPythonÀº wxAppŬ·¡½º¿¡¼ Á¦°øÇÏ´Â OnInit ¸Þ½îµå¸¦ ÅëÇØ¼ ¸¸µé¾îÁø´Ù.
OnInit´Â Windows¸¦ ¸¸µé°í, ÇÁ·Î±×·¥ÀÌ Ã³À½¿¡ ½ÃÀÛÇÏ¸é¼ ÇÊ¿äÇÑ °¢Á¾ ÃʱâÈ ÀÛ¾÷À» ½ÇÇàÇÑ´Ù.
±×¸®°í wxFrameÀ» ÀÌ¿ëÇÏ¿© window(parent window ȤÀº main frame)¸¦ ¸¸µç´Ù. óÀ½¿¡ À©µµ¿ì¸¦ ¸¸µé¶§ »ý¼ºÀÚ(constructor)¸¦ ÀÌ¿ëÇÏ¿© À©µµÀÇ À§Ä¡¿Í Å©¸®¸¦ ÁöÁ¤ÇØÁÖÁö¸¸, ¿©±â¼´Â ÇÁ·Î±×·¥À» ÃÖ¼ÒÇÑ °£¼ÒÈ ½Ã۱â À§Çؼ »ý·«ÇÏ¿´±â¿¡ ±âº»°ªÀ¸·Î ¸¸µé¾îÁö°Ô µÈ´Ù.
¸¶Áö¸· 2°³ÀÇ ¶óÀÎÀº ¾Æ¸¶µµ ¸ðµç wxPythonÇÁ·Î±×·¥¿¡ °øÅëÀûÀ¸·Î Æ÷Ç﵃ °ÍÀÌ´Ù. ÀÌ´Â ¿ì¸®°¡ ¸¸µç ¾îÇø®ÄÉÀÌ¼Ç Å¬·¡½ºÀÇ instance¸¦ »ý¼ºÇϰí MainLoop()¸Þ½îµå¸¦ ÅëÇØ¼ ¸¸µç Å¬ÇØ½º¸¦ È£ÃâÇÏ°Ô µÈ´Ù. MainLoop´Â wxPython¾îÇø®ÄÉÀ̼ÇÀÇ ÇÙ½É ¿ä¼Ò·Î À̺¥Æ®¸¦ ÇÁ·Î¼¼½ÌÇÏ°í ¾îÇø®ÄÉÀ̼ǿ¡ Æ÷ÇԵǾî ÀÖ´Â ¿©·¯ °¡Áö À©µµ¿ì¿¡ À̺¥Æ®¸¦ Àü´ÞÇÏ´Â µîÀÇ ÀÏÀ» ¼öÇàÇÑ´Ù. ´ÙÇàÀ̵µ ¿ì¸®´Â ÀÌ·¯ÇÑ °úÁ¤ÀÌ ÀϾ´Â ¼¼ºÎÀûÀÎ ³»¿ëÀ» ¸ô¶óµµ µÈ´Ù. wxPythonÀÌ ¾Ë¾Æ¼ ó¸®ÇØ Áֱ⠶§¹®ÀÌ´Ù. | |
Source 2) small editor |
#!/usr/bin/python
from wxPython.wx import *
class MainWindow(wxFrame):
def __init__(self, parent, id, title):
wxFrame.__init__(self, parent, -4, title, size = (200, 100),
style=wxDEFAULT_FRAME_STYLE|wxNO_FULL_REPAINT_ON_RESIZE)
self.control = wxTextCtrl(self, 1, style=wxTE_MULTILINE)
self.Show(true)
app = wxPySimpleApp()
frame = MainWindow(None, -1, "Hello from wxPython")
frame.Show(1)
app.MainLoop() |
Source 2 ¼³¸í |
ÀÌ ¼Ò½º´Â ¸Å¿ì °£´ÜÇÑ ¿¡µðÅÍ À©µµ¿ìÁîâÀÌ´Ù.
wxFrameÀ¸·ÎºÎÅÍ »ó¼Ó ¹ÞÀº MainWindow¶ó´Â Ŭ·¡½º¸¦ Á¤ÀÇÇϰí __init__ ¸Þ½îµå¸¦ ¿À¹ö·Îµù ÇÑ´Ù. wxTextCtrlÀ̶ó´Â °£´ÜÇÑ ÆíÁý±â ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ¹®¼ ÆíÁý textâÀ» ¸¸µç´Ù. ¼Ò½º¸¦ ½ÇÇàÇÏ¸é ´Ü¼øÈ÷ text ÀÔ·Â ¹× ÆíÁý ±â´É¸¸ÀÌ È°¼ºÈ µÈ´Ù. ÆÄÀÏ ÀúÀå°ú °°Àº ±â´ÉÀ» Ãß°¡·Î ³Ö´Â ¼Ò½º¸¦ °øºÎÇØº¸¸é ´õ ÈǸ¢ÇÑ editor°¡ µÉ °ÍÀÌ´Ù.

| |
Source 3) small editor + ¸Þ´º¿Í »óŹ٠Áö¿ø |
#!/usr/bin/python
from wxPython.wx import *
ID_ABOUT = 101
ID_EXIT = 102
class MyFrame(wxFrame):
def __init__(self, parent, ID, title):
wxFrame.__init__(self, parent, ID, title,
wxDefaultPosition, wxSize(200, 150))
self.CreateStatusBar()
self.SetStatusText("This is the statusbar")
menu = wxMenu()
menu.Append(ID_ABOUT, "&About",
"More information about this program")
menu.AppendSeparator()
menu.Append(ID_EXIT, "E&xit", "Terminate the program")
menuBar = wxMenuBar()
menuBar.Append(menu, "&File");
self.SetMenuBar(menuBar)
class MyApp(wxApp):
def OnInit(self):
frame = MyFrame(NULL, -1, "Hello from wxPython")
frame.Show(true)
self.SetTopWindow(frame)
return true
app = MyApp(0)
app.MainLoop() |
Source 3 ¼³¸í |
À§ Source 2) ¼Ò½ºÆÄÀÏ¿¡ ¾Æ·¡ µÎºÎºÐÀ» Ãß°¡ÇØ ³Ö¾ú´Ù.
Ãß°¡1)
ID_ABOUT = 101
ID_EXIT = 102
Ãß°¡2)
menu = wxMenu()
menu.Append(ID_ABOUT, "&About",
"More information about this program")
menu.AppendSeparator()
menu.Append(ID_EXIT, "E&xit", "Terminate the program")
menuBar = wxMenuBar()
menuBar.Append(menu, "&File");
self.SetMenuBar(menuBar)
Ãß°¡ºÎºÐ¿¡ ÀÇÇØ Source 2¿¡¼ ´Ü¼øÇÏ°í º¼Ç°¾ø´ø â¿¡¼ ¸Þ´º¿Í »óŹ٠±â´ÉÀÌ Å¾ÀçµÈ ¸ÚÁø ¿¡µðÅͰ¡ ±¸ÇöµÇ¾ú´Ù.

| |
|
°£·«È÷ wxPythonÀ» ÀÌ¿ëÇÏ¿© ÇÁ·Î±×·¥ Á¦ÀÛ ¹æ¹ýÀ» ¾Ë¾Æº¸¾Ò´Ù. ÀÌ¿Ü ¼ö¸¹Àº ±â´ÉµéÀÌ Á¸ÀçÇÏÁö¸¸ Áö¸é°ü°è»ó ¿©±â¼ Á¤¸®Çϵµ·Ï ÇϰڴÙ.
wxPythonÀÇ È°¿ë ¹æ¾ÈÀº ¹«±Ã¹«ÁøÇÒ µíÇÕ´Ï´Ù. ÇÊÀÚµµ ´õ¿í ¿½ÉÈ÷ ÇнÀÇÏ¿© wxPythonÀÇ È°¿ë¹æ¾ÈÀ» ¿¬±¸ÇÏ¿© ´ÙÀ½¹ø¿¡´Â wxPythonÀÇ È°¿ë¹æ¾È¿¡ ´ëÇØ ¹®¼ÀÛ¾÷À» ÇØº¸µµ·Ï ÇϰڽÀ´Ï´Ù.
´õ ÇÊ¿äÇÑ ÀÚ·á´Â http://wxpython.org/tutorial.php Âü°íÇÏ½Ã±æ ¹Ù¶ø´Ï´Ù.
|
|
 |
|
[¿ø±Û¸µÅ©] : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=1202
 |
º»¸í : ÁÖÁøÀº
E-Mail : thinkbook°ñ»±ÀÌsuperuser.co.kr
¼Ò¼Ó : (ÁÖ)¼öÆÛÀ¯ÀúÄÚ¸®¾Æ |
|
|
|
|