wxPython第二篇、Button控件实例讲解

wxPython第二篇、Button控件实例讲解

前言:

​ wxPython有很多控件例如Button、CheckBox、StaticText、ListBox 等等(and so on),它的控件还是很多的,可以满足基本的开发需要,但是一天是不介绍不完的,慢慢介绍,不要急于求成,一口是吃不成一个胖子的!!!这些小控件的用法我会以小demo的方式逐一讲解,也或许你会发现这些小demo界面似曾相识。好了,不废话了。

环境:

vs2017 Python3.6.6 wxPython4.0.6 (先说明一下环境以免不必要的问题出现)

效果展示:

不吹不躁,先看效果,

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xkwpLbho-1572362347216)(C:\Users\FBC\AppData\Roaming\Typora\typora-user-images\image-20191029220313151.png)]
​ 按下后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类的一些重要方法

序号方法说明
1SetLabel()编程设置按钮的标题
2GetLabel()返回按钮的标题
3SetDefault()按钮设置为默认顶层窗口。模拟click事件按下回车键

点个赞再走吧

我会定期在公众号更新好用,好玩的教程视频
你的关注是我更新的动力

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LBXn9tmJ-1572362347219)(C:\Users\FBC\Desktop\qrcode_for_gh_9069f94a03ef_258.jpg)]
在这里插入图片描述

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值