wxPython:一曲MFC的挽歌,理想主义的绝唱
文章图片
作者|许向武出品|CSDN博客概述
MFC是我接触到的第一个界面库 , 当时的操作系统还是Windows95 。 在那个IT技术日新月异的年代 , 就像一个从荒蛮部落闯进文明社会的野人第一眼看见汽车那样 , 我对MFC充满了好奇和迷恋 。 尽管后来断断续续接触了WPF、Qt等GUI库 , 却始终对MFC情有独钟 , 以至于爱屋及乌 , 喜欢上了wxWidgets 。
wxWidgets和MFC的确太相似了 , 连命名习惯和架构都高度相似 。 事实上 , wxWidgets就是跨平台的MFC , 对各个平台的差异做了抽象 , 后端还是用各平台原生的API实现 。 这正是wxWidgets的优点:编译出来的程序发行包比较小 , 性能也相当优异 。
随着MFC的日渐式微 , Qt异军突起 , 目前已成为最强大 , 最受欢迎的跨平台GUI库之一 。 在Python生态圈里 , PyQt的用户群也远超wxPython 。 喜欢Qt的人认为这是技术竞争的结果 , 但我觉得这更像是开源理念和商业化思想的差异造成的 。
wxWidgets像是一个孤独的勇士 , 高举开源的大旗 , 试图以一己之力构建一个相互承认、相互尊重的理想社会;而Qt则更像是一个在商业资本驱使下不断扩张的帝国 , 它不满足于封装不同平台的API , 而是要创造出自己的API和框架 , 它不仅仅是UI , 而是囊括了APP开发用到的所有东西 , 包括网络、数据库、多媒体、蓝牙、NFC、脚本引擎等 。
缺少或拒绝商业化运作的支持 , wxWidgets的悲情结局早已是命中注定 。 如果不是因为Python的兴盛和wxPython的复兴 , wxWidgets也许早已经和MFC一样被遗忘在了角落里 。 不无夸张地说 , wxPython是以MFC为代表的一个时代的挽歌 , 更是一曲理想主义的绝唱 。
1.1组织架构
其实 , wxPython谈不上什么组织架构 , 因为桌面程序开发所用的类、控件、组件和常量几乎都被放到了顶级命名空间wx下面了 。 这样做看似杂乱无章 , 但用起来却是非常便捷 。 比如 , 导入必要的模块 , PyQt通常要这样写:
fromPyQt6.QtWidgetsimportQApplication,QWidget,QComboBox,QPushButton,QHBoxLayout,QVBoxLayout,QColorDialogfromPyQt6.QtGuiimportQIcon,QPainter,QPen,QColor,QPolygonfromPyQt6.QtCoreimportQt,QPointPyQt巨人般的体量限制了使用星号导入所有的模块 , 只能用什么导入什么 。 而wxPython只需要简短的一句话:
importwx再比如一些常量的写法 , wxPython同样简洁 , PyQt已经长到匪夷所思的程度了 。 比如左对齐和确定取消键 , wxPython这样写:
wx.ALIGN_LEFTwx.OK|wx.CANCELPyQt写出来几乎要占一整行:
Qt.AlignmentFlag.AlignLeftQMessageBox.StandardButton.Ok|QMessageBox.StandardButton.Cancel尽管wxPython也与时俱进地增加了一些诸如wx.xml、wx.svg之类地外围模块 , 但除了wx这个核心模块之外 , 我个人觉得只有wx.aui和wx.grid模块算是必要的扩展 。 如果想让界面更花哨点 , 那就要了解以下wx.adv、wx.ribbon这两个模块 , 纯python构建的控件库wx.lib也绝对值得一试 。 总之 , 站在我的应用领域看 , wxPython的组织架构如下图所示 。 根据使用频率的高低 , 我给各个模块标注了红黄绿蓝四种颜色 。
文章图片
1.2安装
截至本文写作时 , wxPython的最新版本是4.1.1 。 Windows用户和macOS用户可以直接使用下面的命令安装 。
pipinstall-UwxPython由于Linux平台存在发行版之间的差异 , 必须使用相应的包管理器进行下载和安装 。 例如 , 在Ubuntu系统上可以尝试下面的安装命令 。
sudoapt-getinstallpython3-wxgtk4.0python3-wxgtk-webview4.0python3-wxgtk-media4.0快速体验
- 中兴超越中兴:夯实第一曲线 发力第二曲线
- 抖音回首大唐盛世千百年逢君天涯不过一瞬间一曲悠扬沧海复桑田江湖故人念是什么歌 歌曲分享
- Facebook|Facebook 大宕机:远程工作的一曲悲歌
- dns|Facebook 大宕机:远程工作的一曲悲歌
- 独家|腾讯音乐:一曲肝肠断,美股何处觅知音?
- 抖音江上一曲低诵晚风唱出心伤才知情浓鸳鸯离散谁知其中饱尝辛酸谁人能懂是什么歌 歌曲分享