wxpython中listbox用法,单选和多选

import wx
class MyFrame(wx.Frame):
    def __init__(self):
        super().__init__(parent=None,title="vbox",size=(500,200),pos=(100,100))   #继承wx.Frame类
        self.Center()
        panel = wx.Panel(parent=self)   #面板

        hbox1 = wx.BoxSizer(wx.HORIZONTAL)

        statictext = wx.StaticText(parent=panel,label='Which language do you like')
        list1=['C#','C++','java','python']
        lb1=wx.ListBox(panel,-1,choices=list1,style=wx.LB_SINGLE)	#style=wx.LB_SINGLE单选
        self.Bind(wx.EVT_LISTBOX,self.on_list,lb1)
        hbox1.Add(statictext,1,flag=wx.LEFT | wx.RIGHT | wx.FIXED_MINSIZE)
        hbox1.Add(lb1,1,flag=wx.ALL | wx.EXPAND)

        hbox2 = wx.BoxSizer(wx.HORIZONTAL)

        statictext2 = wx.StaticText(parent=panel,label='sex')
        list2=['male','female']
        lb2=wx.ListBox(panel,-1,choices=list2,style=wx.LB_EXTENDED | wx.LB_SORT)	#wx.LB_EXTENDED | wx.LB_SORT多选并且排序
        self.Bind(wx.EVT_LISTBOX,self.on_list2,lb2)
        hbox2.Add(statictext2,1,flag=wx.LEFT | wx.RIGHT | wx.FIXED_MINSIZE)
        hbox2.Add(lb2,1,flag=wx.ALL | wx.EXPAND)

        vbox = wx.BoxSizer(wx.VERTICAL)
        vbox.Add(hbox1,1,flag=wx.ALL | wx.EXPAND,border=5)
        vbox.Add(hbox2,1,flag=wx.ALL | wx.EXPAND,border=5)

        panel.SetSizer(vbox)

    def on_list(self,event):
        listbox=event.GetEventObject()
        print('listbox1:'+str(listbox.GetSelection()))	#单选要用GetSelection()取值

    def on_list2(self,event):
        listbox2 = event.GetEventObject()
        print('listbox2:' + str(listbox2.GetSelections()))		#多选要用GetSelections()取值

class App(wx.App):
    def OnInit(self):    #进入
        frame = MyFrame()
        frame.Show()
        return True
    def OnExit(self):   #退出
        print("tuichu")
        return 0

if __name__ == '__main__':
    app=App()
    app.MainLoop()

你可能感兴趣的:(python)