Project Jo

파이썬 UI 개발 wxPython 본문

Developer

파이썬 UI 개발 wxPython

Project Jo 2025. 4. 25. 17:59
wxPython은 Python 프로그래밍 언어를 위한 크로스 플랫폼 GUI 툴킷입니다.
Mac OS, Windows, Linux 및 Unix 기반 시스템과 같은 다양한 플랫폼에서 작동합니다.

 

1. 설치

pip install wxpython

 

2. 화면 표시

import wx

class MainWindow(wx.Frame):
  def __init__(self):
    super().__init__(parent=None, title='TEST', size=wx.Size(500, 200))
    base_sizer = wx.BoxSizer(orient=wx.VERTICAL)
    self.SetSizer(base_sizer)

app = wx.App()
window = MainWindow()
window.Show()
app.MainLoop()

 

wx.Frame 을 상속받은 MainWindow 를 생성하고 보여준다.
초기화에서 parent 는 부모 윈도우, title 는 창의 제목, size 는 윈도우의 크기이다.
BoxSizer 의 orient 는 내부 화면의 정렬 방향 으로 VERTICAL 와 HORIZONTAL 이 있다.

 

3. 버튼 설정

self.button1 = wx.Button(self, label='메시지박스 띄우기')
self.button2 = wx.Button(self, label='끝내기')
base_sizer.Add(self.button1, proportion=1, flag=wx.ALL|wx.EXPAND)
base_sizer.Add(self.button2, proportion=1, flag=wx.ALL|wx.EXPAND)

self.button1.Bind(wx.EVT_BUTTON, self. OnButton1Click)
self.button2.Bind(wx.EVT_BUTTON, self. OnButton2Click)
    
def OnButton1Click(self, event):
    wx.MessageBox('텍스트')

def OnButton2Click(self, event):
    self.Close()

 

base_sizer 에 2개의 버튼을 생성해서 넣고, 버튼 호출 함수를 연결 하였다.

 

4. 최종 코드

import wx

class MainWindow(wx.Frame):
  def __init__(self):
    super().__init__(parent=None, title='TEST', size=wx.Size(500, 200))
    base_sizer = wx.BoxSizer(orient=wx.VERTICAL)
    self.SetSizer(base_sizer)

    self.button1 = wx.Button(self, label='메시지박스 띄우기')
    self.button2 = wx.Button(self, label='끝내기')
    base_sizer.Add(self.button1, proportion=1, flag=wx.ALL|wx.EXPAND)
    base_sizer.Add(self.button2, proportion=1, flag=wx.ALL|wx.EXPAND)

    self.button1.Bind(wx.EVT_BUTTON, self. OnButton1Click)
    self.button2.Bind(wx.EVT_BUTTON, self. OnButton2Click)

  def OnButton1Click(self, event):
    wx.MessageBox('텍스트:' + self.text_box.GetValue())

  def OnButton2Click(self, event):
    self.Close()

app = wx.App()
window = MainWindow()
window.Show()
app.MainLoop()