python界面设计工具-wxFormBuilder

一 wxFormBuilder是什么

wxFormBuilder是一款可视化的GUI设计工具,界面设计后可以自动生成代码,免去了手工码gui的繁琐,一套界面可支持生成C++\Python\PHP\Lua\XRC等代码形式,可以极大提升python GUI开发效能。

项目发布网址:

https://github.com/wxFormBuilder/wxFormBuilder/releases

二 wxFormBuilder工具界面

工具界面主要分为四大区:项目区、控件区、编辑区、属性区。虽然工具没有提供详细的使用文档,但如果有C#桌面应用开发经验,会发现它与vs studio有几分神似,可以很快上手。界面设计的基本操作步骤为:在【控件区】选择控件,控件会在【编辑区】实时显示,然后在【属性区】编辑控件属性,整个界面布局会以树形层级结构显示在【项目区】,且项目区的控件支持拖动改变位置。

三 界面布局

一个GUI的基础框架包括:Frame,Sizer,menubar,statusBar,且控件之间存在层次关系。

Frame:

整个界面的基础框架,直接决定GUI界面大小,其他控件都是在frame基础上才能添加(对应控件区的Forms);

Sizer:

决定了各控件的布局和相对位置,所有的基础控件都应该放在sizer里,且sizer支持嵌套,这也是与vs界面设计器不同的地方,不能支持控件的自由拖动,略显不够灵活,但通过sizer嵌套也可以实现复杂的界面设计(对应控件区的Layout);

控件:

有了上面两层后,就可以真正的添加控件了,提供了支持wxpython的丰富控件,对应控件区的Common、Containers、Menu/Toolbar等;

3.1 sizer布局器

Sizer布局类型有7种:wxBoxSizer、wxWrapSizer、wxStaticBoxSizer、wxGridSizer、wxFlexGridSizer、wxGridBagSizer、wxStdDialogButtonSizer,sizer决定了添加在内部的各个控件的相对位置,如图wxBoxSizer是上下排列的布局器,则frame添加了一个wxBoxSizer,然后在该sizer内添加三个按钮,那么,这三个按钮就自动按自上而下进行排列。

3.2 控件属性

每个控件都可以单独设置属性,也会有自己的独特属性,在此总结了5个影响控件表现的重要属性: style,flag,size ,proportion,orient。

Style: 控件样式,不同的控件有不同的style属性值,勾选后可以实时表现在设计器上;

Flag: 可以设置控件边框、对齐(align)、扩展(expand)等表现;

Size: 设置控件大小;

Proportion:是否自动拉伸(stretch),默认0;

Orient: 控件对齐方式,wxVertical(垂直对齐),wxHorizontal(水平对齐);

3.3 响应事件

有些控件是需要触发事件响应的,比如按钮控件(Button),当点击Button,需要触发某个任务时,就需要为该控件绑定事件。界面设计时,只需要在【属性区】的【Events】页面配置事件对应的函数名,如按钮点击事件是OnButtonClick,具体功能实现放在业务模块重写该事件函数即可。

3.4 生成代码

界面设计完成后,选择File->Generate Code或F8即可生成代码,或者直接切换到对应的代码标签页复制代码,另存到py文件。

四 使用自动生成的界面代码

引用界面设计器生成的布局代码的基本方法如下:

 
  1. import wx

  2. # 导入布局器生成的界面代码,如类名为BaseFrame,模块名为base_frame

  3. from base_frame import BaseFrame

  4.  

  5. class mainWin(BaseFrame):

  6. "继承BaseFrame界面布局"

  7.  

  8. def __init__(self, parent):

  9. BaseFrame.__init__(self, parent)

  10. # 初始化数据

  11. pass

  12.  

  13. def handle_event(self, event):

  14. # 重写事件处理函数

  15. pass

  16.  

  17.  

  18. if __name__ == '__main__':

  19. app = wx.App()

  20.  

  21. main_win = mainWin(None)

  22. main_win.Show()

  23.  

  24. app.MainLoop()

转载网址:

https://mp.weixin.qq.com/s?__biz=MjM5MTkxMTQ4Nw==&mid=2449052654&idx=1&sn=c428f6db3582620ac2bef2b14f0f5247&chksm=b2a368be85d4e1a803c2ad8cf8f88630f8c5143893416ca466456d34beba1efacb628b0b5d71&token=1621876628&lang=zh_CN#rd

 


看完本文有收获?请转发分享给更多人

关注 【小蟒社区】,一起学Python

这是一个VB6的IDE插件(Addin),使用VB6的IDE直接设计Python的界面。 Python和VB都是能让人快乐的编程语言,我使用了Python之后,很多自己使用的工具都使用Python开发或改写了,因为最终实现的Python代码实在太短了(相比VB),有时候Python一行代码就可以实现VB一个函数的功能。 Python就是这种让人越用越开心的语言。 不过说实在,使用Python开发GUI界面还是麻烦了一些了,自带的标准库Tkinter使用起来非常简单,不过对于习惯了VB拖放控件完成界面设计的同学来说,还是不够人性化。TK也有一个工具叫GUI Builder,不过它使用Layout布局,不够直观,而且界面简陋,用起来也不爽。 至于PyQt/wxPython等GUI库,尽管有可视化设计工具,但总感觉做一般的轻量级应用是杀鸡用牛刀,学习起来也比较复杂,而且不够环保,不够低碳,要带一个很大的库,需要目标机器上夜同样安装了PyQt/wxPython,做不了绿色软件。 所以最终的结果是我更喜欢Tkinter,用起来很简单,绿色环保,真正的跨平台,一个py文件到处运行(担心泄密就编译成pyc)。 很多人都认为TK的界面不够美观,不过导入Python自带的标准TTK主题库,界面非常Native,不输PyQt/wxPython。 此Addin默认启用TTK支持,也可选择关闭。 总而言之,轻量级GUI,TK+TTK足够。 使用此Addin,你可以不用写一句代码就可以生成一个完整可运行的Python的GUI界面,支持python 2.X和3.X。 安装方法:将压缩包解压到你希望的目录,然后执行Setup.exe完成注册插件过程,打开VB6就可以用了。 在VB窗体上设计完成界面后(你可以大胆的设置各控件的属性,Addin尽量将其翻译为tkinter的控件属性),点工具栏上的VisualTkinter(图标为一片橙红色羽毛),再点'生成代码'按钮,即可生成可运行的Python代码,可以拷贝至剪贴板或保存至文件。 一般情况下你可以不用再改变tkinter的控件属性,但是如果你熟悉tkinter,需要更多的控制,可以一一核对各属性,并且修改,再生成代码。 除了用来设计界面外,此ADDIN内置的各控件属性列表可以做为编程参考,比较完整,除了极少数我认为大多数人都不用的属性外,属性定义基本上是我从官方的tkinter文档直接翻译的。 如果还没有VB6,网上找一个VB6精简版即可(建议使用12M的版本,6M的版本也可以使用,不过工具栏图标无法显示,可以通过菜单执行此插件)。 经过网友测试,完美支持WinXP,Windows 7, Windows 8。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值