[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()

[실행 화면]




















by 하린아빠 | 2008/02/27 20:38 | wxPython | 트랙백(1) | 덧글(0)
트랙백 주소 : http://pythondev.egloos.com/tb/107312
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Tracked from at 2014/03/11 00:42

:         :

:

비공개 덧글



< 이전페이지 다음페이지 >