社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
wxPython有很多控件例如Button、CheckBox、StaticText、ListBox 等等(and so on),它的控件还是很多的,可以满足基本的开发需要,但是一天是不介绍不完的,慢慢介绍,不要急于求成,一口是吃不成一个胖子的!!!这些小控件的用法我会以小demo的方式逐一讲解,也或许你会发现这些小demo界面似曾相识。好了,不废话了。
vs2017 Python3.6.6 wxPython4.0.6 (先说明一下环境以免不必要的问题出现)
不吹不躁,先看效果,
按下后vs2017的中端就会打印输出当前的按键状态。ON or OFF
1 import wx #导入wx模块
2
3 class ButtonFrame(wx.Frame):
4 ClickNum = 0 #定义变量
5 def __init__(self):
6 wx.Frame.__init__(self, None, -1, 'Button Demo',
7 size=(300, 200)) #初始化窗口信息
8
9 panel = wx.Panel(self, -1) #创建面板
10 self.button = wx.Button(panel, -1, "OFF", pos=(50, 50),size=(50,30)) #在面板上添加控件
11 self.Bind(wx.EVT_BUTTON, self.OnClick, self.button) #将回调函数与按键事件绑定
12
13 def OnClick(self, event): #回调函数事件
14 self.button.SetLabel("ON") #设置
15 self.ClickNum+=1
16 if self.ClickNum % 2 == 1: #根据按下次数判断
17 self.button.SetLabel("ON")#修改按键的标签
18 print(self.button.GetLabel())#打印信息(返回按键的标签信息)
19 else:
20 self.button.SetLabel("OFF")
21 self.ClickNum = 0
22 print(self.button.GetLabel())
23
24 #主函数入口
25 if __name__ == '__main__':
26 # 下面是使用wxPython的固定用法
27 app = wx.PySimpleApp()
28 frame = ButtonFrame()
29 frame.Show()
30 app.MainLoop()
(先一睹为快)
1 import wx #导入wx模块
将需要的模块 使用 import 导入
3 class ButtonFrame(wx.Frame):
4 ClickNum = 0 #定义变量
5 def __init__(self):
6 wx.Frame.__init__(self, None, -1, 'Button Demo',
7 size=(300, 200)) #初始化窗口信息
8
9 panel = wx.Panel(self, -1) #创建面板
10 self.button = wx.Button(panel,-1,"OFF",pos=(50, 50),size=(50,30))#在面板上添加控件
11 self.Bind(wx.EVT_BUTTON, self.OnClick, self.button) #将回调函数与按键事件绑定
**第4行 ** 中定义了一个类成员的变量,主要用于按键事件的回调函数。
**第6行 ** 中以传参的形式初始化面板的一些基础信息,主要的是 'Button Demo'
和 size=(300, 200)
这两个,'Button Demo'
不难看出第一个是面板的标题名字,size=(300, 200)
是窗口的大小,直接将需要的大小填进去即可,python的类,在调用的时候会自动调用类的.__init__
函数,所以说在这里布局UI界面即可了。
**第9行 ** 创建一个面板,接下来的控件全部放在这个面板之上。
**第10行 ** 在面板上添加控件wx.Button(panel,-1,"OFF",pos=(50, 50),size=(50,30))
,其中Button这几个参数也比较好理解。
panel
所指定的面板
-1
"OFF"
Button控件的标签信息,也就是Button上面的提示文字
pos=(50, 50)
Button控件的位置信息
size=(50,30)
Button控件的尺寸信息
**第11行 ** 将Button控件绑定到OnClick
事件,参数如下:
wx.EVT_BUTTON
绑定的属性
self.OnClick
被绑定的回调函数,OnClick
就是函数的名字
self.button
控件
13 def OnClick(self, event): #回调函数事件
14 self.button.SetLabel("ON") #设置
15 self.ClickNum+=1
16 if self.ClickNum % 2 == 1: #根据按下次数判断
17 self.button.SetLabel("ON")#修改按键的标签
18 print(self.button.GetLabel())#打印信息(返回按键的标签信息)
19 else:
20 self.button.SetLabel("OFF")
21 self.ClickNum = 0
22 print(self.button.GetLabel())
然后就是被绑定的回调函数的实现了,在这里实现了一个简单好用的demo,也就是当按键被按下的时候可以实现标志的反转,在这里用打印代替更明显。
**第13行 ** def OnClick(self, event):
OnClick是函数名字,括号中可以理解为是固定的形式
第14~22行 是点击函数后触发的事件内部实现,实现的思路为,设置个变量自加然后判断是1还是0,然后对下按下的键值。
以下是wx.Button类的一些重要方法
序号 | 方法 | 说明 |
---|---|---|
1 | SetLabel() | 编程设置按钮的标题 |
2 | GetLabel() | 返回按钮的标题 |
3 | SetDefault() | 按钮设置为默认顶层窗口。模拟click事件按下回车键 |
点个赞再走吧
我会定期在公众号更新好用,好玩的教程视频
你的关注是我更新的动力
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!