본 내용의 출처는 이글루 블로그의 '하린아빠' 라는 네임을 쓰시는 분의 블로그입니다.
[출처] - http://pythondev.egloos.com/107312
행여나 이글루 블로그가 없어지면 참고할 곳이 사라지기에 주인장님께 댓글을 남기고 퍼 옵니다.
[wxPython] wx.ComboBox(콤보 박스)를 사용법 및 이벤트 처리
# -*- coding: cp949 -*-
#!/usr/bin/python
# combobox.py
import wx
class MyDialog(wx.Dialog):
def __init__(self, parent, id, title):
wx.Dialog.__init__(self, parent, id, title, size=(250, 270))
panel = wx.Panel(self, -1, (75, 20), (100, 127), style=wx.SUNKEN_BORDER)
# StaticBitmap 생성
self.picture = wx.StaticBitmap(panel)
panel.SetBackgroundColour(wx.WHITE)
# 이미지 리스트
self.images = ['tolstoy.jpg', 'feuchtwanger.jpg', 'pasternak.jpg', 'galsworthy.jpg', 'wolfe.jpg', 'zweig.jpg']
authors = ['Leo Tolstoy', 'Lion Feuchtwanger', 'Boris Pasternak', 'John Galsworthy', 'Tom Wolfe', 'Stefan Zweig' ]
# 콤보 박스 생성
wx.ComboBox(self, -1, pos=(50, 170), size=(150, -1), choices=authors, style=wx.CB_READONLY)
wx.Button(self, 1, 'Close', (80, 220))
self.Bind(wx.EVT_BUTTON, self.OnClose, id=1)
self.Bind(wx.EVT_COMBOBOX, self.OnSelect)
self.Centre()
def OnClose(self, event):
self.Close()
# 콤보 박스 이벤트 처리
def OnSelect(self, event):
# 콤보 박스에서 선택한 아이템을 얻음.
item = event.GetSelection()
self.picture.SetFocus()
# 선택한 항목에 해당하는 이미지를 로드함.
self.picture.SetBitmap(wx.Bitmap('images/' + self.images[item]))
class MyApp(wx.App):
def OnInit(self):
dlg = MyDialog(None, -1, 'combobox.py')
dlg.ShowModal()
dlg.Destroy()
return True
app = MyApp(0)
app.MainLoop()
[실행 화면]
'Language > Python' 카테고리의 다른 글
[Pyinstaller] exe 파일 빌드하며 짜증났던 부분 정리 (0) | 2017.02.06 |
---|---|
[wxPython] wx.CheckBox를 이용한 체크박스 만들기 (0) | 2017.02.06 |
[wxPython] wx.StaticBox를 이용한 컨트롤 그룹만들기 (0) | 2017.02.06 |
[wxPython] wx.StaticText를 이용한 문자열 출력 (0) | 2017.02.06 |
[wxPython] wx.StaticLine 을 이용한 구분선 추가 (0) | 2017.02.06 |