当前位置: 首页 > news >正文

wxGlade wxFormBuilder

最近在使用wxPython写一个编辑器,做界面使用了wxGlade,以前我只用过wxWidgets+wxFormBuilder的组合,感觉wxPython+wxGlade确实效率更高些,当然这受益于python语言的简洁易用。

几点使用体会:

1)wxGlade自动生成的代码可以和自己写的代码和平共处。在使用wxFormBuilder时,除了生成界面代码,还要生成派生类代码,这样界面代码不需要做任何修改,自己的代码直接写在派生类中。这种方法比较面向对象了,但是缺点是派生类代码生成后如果要改变,就必须合并自己写的代码。而wxGlade生成的界面代码可以往里面添加自己的代码,界面改变后重新生成代码并不会删除你自己的代码。这主要靠代码中的一些wxGlade标记注释实现。比如# begin wxGlade: MainFrame.__init__和# end wxGlade之间的代码是wxGlade生成的,你不能在这里面加代码,否则会被覆盖掉,但在外面加就没问题了。

2)使用方式方面wxGlade和wxFormBuilder基本差不多。都支持自定义控件。不过wxFormBuilder需要填自定义控件的构造等,而wxGlade只要填一个类名。使用是简单了,但是没法自己写构造函数,比如我使用了一个wx.gizmos.TreeListCtrl,构造时想加入一些style是不行了。另外,wxGlade也不支持wxAUI,还是很遗憾的。

3)wxGlade的菜单和工具条编辑器不能使用wxArt提供的图片,只能使用外部载入的图片。

4)wxGlade不能自动生成id的define,我只能填一个数,不过在菜单上可以填-1,因为事件绑定是使用名字,而工具条就不行了,只能填数了。不过wxPython的事件绑定使用方式和wxWidgets不太一样,wxFormBuilder是自动生成id的define的,事件通过id绑定,工具条和菜单使用同一id即可关联。而wxPython+wxGlade时,我是通过填入相同的事件处理器来完成。不过他们都没有SWT的菜单和工具条关联的机制方便~ SWT很久没用了,依稀记得只要定义action即可

5)Layout编辑还OK,wxGlade还可以更换sizer的类型,貌似wxFormBuilder不行

相关文章:

  • 价值驱动:移动支付的推手
  • 赖床随想记录
  • 世博会助中移动从3G迈向4G
  • 《中关村两个男人的斗争》外传——西直门
  • JavaScript 面向对象的使用
  • Symbian下自动切换SDK的批处理代码
  • [Web开发] 在线 Javascript 代码格式美化工具
  • 如果浏览器是女人……
  • C#几种常用的排序算法
  • DFS测试_引用状态持续缓存时间
  • “139邮箱”练好内功比发电影票更重要
  • 7 个效果震憾的 HTML5 应用组件
  • 校内网是如何赚钱的
  • 前端开发攻城师不可忽视的五个HTML5新特性
  • Windows Server 2003 Update Service Pack 2, BarTender 7.10 Enterprise 无法启动的解决方法
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • co.js - 让异步代码同步化
  • dva中组件的懒加载
  • JAVA SE 6 GC调优笔记
  • javascript从右向左截取指定位数字符的3种方法
  • k个最大的数及变种小结
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • Phpstorm怎样批量删除空行?
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • windows下mongoDB的环境配置
  • 阿里云Kubernetes容器服务上体验Knative
  • 聊聊directory traversal attack
  • 前端面试之闭包
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 源码安装memcached和php memcache扩展
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • 积累各种好的链接
  • #FPGA(基础知识)
  • #QT项目实战(天气预报)
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (3)(3.5) 遥测无线电区域条例
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (pojstep1.1.2)2654(直叙式模拟)
  • (Python第六天)文件处理
  • (ros//EnvironmentVariables)ros环境变量
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (安卓)跳转应用市场APP详情页的方式
  • (论文阅读40-45)图像描述1
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (一)u-boot-nand.bin的下载
  • (转)VC++中ondraw在什么时候调用的
  • (转)四层和七层负载均衡的区别
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .net core 连接数据库,通过数据库生成Modell
  • .NET Core中的去虚
  • .NET Framework 4.6.2改进了WPF和安全性
  • .net MySql
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值