-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathchoice.py
60 lines (47 loc) · 2 KB
/
choice.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import wx
# 自定义一个窗口类MyFrame
class MyFrame(wx.Frame):
def __init__(self):
super().__init__(parent=None, title="下拉列表", size=(400, 130))
self.Center() # 设置窗口居中
# 放一个面板,用于布局其他控件
panel = wx.Panel(parent=self)
hbox1 = wx.BoxSizer(wx.HORIZONTAL)
# 创建静态文本
statictext = wx.StaticText(panel, label='选择你喜欢的编程语言:')
list1 = ['Python', 'Java', "C++"]
ch1 = wx.ComboBox(panel, -1, value='C', choices=list1, style=wx.CB_SORT)
# 添加事件处理
self.Bind(wx.EVT_COMBOBOX, self.on_combobox, ch1)
hbox1.Add(statictext, 1, flag=wx.LEFT | wx.RIGHT | wx.FIXED_MINSIZE, border=5)
hbox1.Add(ch1, 1, flag=wx.LEFT | wx.RIGHT | wx.FIXED_MINSIZE, border=5)
hbox2 = wx.BoxSizer(wx.HORIZONTAL)
statictext = wx.StaticText(panel, label='选择性别:')
list2 = ['男', '女']
ch2 = wx.Choice(panel, -1, choices=list2)
ch2.SetSelection(0)
hbox2.Add(statictext, 1, flag=wx.LEFT | wx.RIGHT | wx.FIXED_MINSIZE, border=5)
hbox2.Add(ch2, 1, flag=wx.LEFT | wx.RIGHT | wx.FIXED_MINSIZE, border=5)
# 添加事件处理
self.Bind(wx.EVT_CHOICE, self.on_choice, ch2)
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_combobox(self, event):
print("选择{0}".format(event.GetString()))
def on_choice(self, event):
print("选择{0}".format(event.GetString()))
# 自定以一个应用程序类
class App(wx.App):
def OnInit(self):
# 创建窗口对象
frame = MyFrame()
frame.Show()
return True
def OnExit(self):
print("应用程序退出")
return 0
if __name__ == '__main__':
app = App() # 创建自定以对象App
app.MainLoop() # 进入事件主循环