wxPython的界面设计wxformbuilde初学笔记

学习网址:http://yuyongid.blog.51cto.com/10626891/1717514

wxformbuilde下载地址:https://sourceforge.net/projects/wxformbuilder/files/wxformbuilder/


环境,Win10,python2.7,wxPython

1、准备一个窗体。

点击wxformbuilder上方的标签“forms”,并点击标签下方的第一个类似窗体的图标“Frame”



然后,下面就会出现一个窗体。但是现在还不能直接往窗体上添加各种控件。咱们还需要给窗体添加布局器BoxSizer。


2、添加布局器

点击wxformbuilder上方的标签“Layout,并点击标签下方的第一个图标“wxBoxSizer”。添加一个只有以列控件布局的布局器。这时,窗体上并没有什么变化。但是窗口左边的目录树有变化了,窗体下多了一个布局器。



3、

3、放置控件

保持目录树如上图一样,选中布局器bSizer1。这样,添加进窗体的控件都属于并使用这个布局器的方法,单列布局。就是,所有添加上去的控件都是在一列上。

点击wxformbuilder上方的标签“Common,顺次并点击标签下方的地三个图标“wxStaticText”,第四个图标“wxTextCtrl”,第一个图标“wxButton”。这样,窗体设置上就会多出一个文字标签、一个文本框和按钮。








4、修改控件属性

点击设计窗体上的控件,或者左边树形结构的控件名。在wxformbuilder右边的编辑栏都会自动变成对应控件的属性编辑。在此,你可以修改该控件的和窗体的各类属性。

此处,我们将会修改主窗体的name,文本编辑框的name,文字标签的label,和按键的label。

4.1 修改主窗体的name

主窗体的name和控件的name决定了你之后要使用的python代码时,使用的实体对象的变量名。点击树形结构的MyFrame1,并在右边属性编辑栏修改窗体的name值为“BaseMainWind。如下图:



4.2修改控件的属性

依照同样的方法,在右边的编辑框修改对应控件的属性。

文本编辑框wxTextCtrl的name属性修改为“text_main”,文字标签wxStaticText的label属性修改为“主窗口测试”,和按键wxButton的label属性修改为“清空”,按键wxButton的name属性修改为“button_main”。

剩下name属性的我偷个懒,都懒得改了。直接使用默认的好了。


加控件的触发事情函数

当按钮被按下时,咱们应该触发一个函数,将文本框里的内容清空。所以,应该给按钮控件添加一个触发按下之后应该使用的处理函数。    

点击选中按钮控件button_main,在右边的属性编辑框,点击上面的另外一个标签“Events”。添加一个给“OnButtonClick”的处理函数名:main_button_click。


6、测试窗体内容。

窗体设计基本完事了,咱们现在稍微测试一个窗体的样子。按下F5,弹出对话框后点击确定。这样就wxformbuilder简单将咱们设计的窗体编译C++的显示方法,显示出窗体的样子。


7、点击选中左边树形图的最上面的图标,即选中工程。
wKioL1ZXx8OwY-FWAABV184GnOk482.png
再点击最下面标签的python,即可出现在wxPython的代码了。如下图:
wKiom1ZXx52geji_AAAuVacuo14612.png
此时,全选上面的代码。右键,【Copy】。
新建一个py源文件,并将全部代码粘贴进去,保存名为basewin.py的python代码源文件。
至此,wxPython代码就已经生成完毕了,请不要轻易变动文件里的代码。下面就是咱们调用窗体的主要逻辑代码了。


8、编辑逻辑代码

将逻辑代码保存为main_win.py

# -*- coding: UTF-8 -*-  
import wx
import basewin
import sys 
reload(sys) 
sys.setdefaultencoding('utf-8')


class MianWindow(basewin.BaseMainWind):
    # 首先,咱们从刚刚源文件中将主窗体继承下来.就是修改过name属性的主窗体咯。
   def init_main_window(self):
       self.text_main.SetValue(u'你好')
   def main_button_click(self, event):
       self.text_main.Clear()
if __name__ == '__main__':
    app = wx.App()
  
    main_win = MianWindow(None)
    main_win.init_main_window()
    main_win.Show()
    app.MainLoop()
将上面的逻辑代码保存为main_win.py,并跟刚刚生成那个basewin.py,放在同一个目录里。

cmd环境运行运行



结果:




其他学习网址:http://www.yiibai.com/wxpython/wxpython_event_handling.html

         http://www.pythontab.com/html/2013/pythongui_0307/281.html



















  • 5
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

samoyan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值