Python图形界面开发的几种方案
前面的教程中,我们程序的用户交互界面都是命令行终端窗口。
程序的用户交互界面,英文称之为 UI (user interface)
当一个应用的 UI 比较复杂的时候,命令行方式就不便用户使用了,这时我们需要图形界面。
如果用 Python
语言开发 跨平台
的图形界面的程序,主要有3种选择:
-
Tkinter
基于Tk的Python库,这是Python官方采用的标准库,优点是作为Python标准库、稳定、发布程序较小,缺点是控件相对较少。
-
wxPython
基于wxWidgets的Python库,优点是控件比较丰富,缺点是稳定性相对差点、文档少、用户少。
-
PySide2、PyQt5
基于Qt 的Python库,优点是控件比较丰富、跨平台体验好、文档完善、用户多。
缺点是 库比较大,发布出来的程序比较大。
工具选择建议:
如果大家要开发小工具,界面比较简单,可以采用Tkinter。
如果是发布功能比较多的正式产品,采用 基于Qt的PySide2、PyQt5。
本教程介绍的就是于Qt的PySide2、PyQt5 开发Python程序的图形界面。
PySide2、PyQt5 简介
PySide2、PyQt5 都是基于著名的 Qt 库。
Qt库里面有非常强大的图形界面开发库,但是Qt库是C++语言开发的,PySide2、PyQt5可以让我们通过Python语言使用Qt。
但是 PySide2、PyQt5 这两者有什么区别呢?
可以形象地这样说: PySide2 是Qt的 亲儿子
, PyQt5 是Qt还没有亲儿子之前的收的 义子
(Riverbank Computing这个公司开发的)。
那为什么 PyQt5 这个义子 反而比 PySide2 这个亲儿子更出名呢?
原因很简单:PySide2 这亲儿子最近(2018年7月)才出生。
但是亲儿子毕竟是亲儿子,Qt准备大力培养,将来PySide2肯定是主流。
所以本教程就采用这个PySide2。
迷恋PyQt5的朋友不要皱眉, 这两者对使用它的程序员来说,几乎没有区别:它们的调用接口几乎一模一样。如果你以前的程序是 PyQt5开发的,通常只要略作修改,比如把导入的名字从 PyQt5 换成 PySide2 就行了。
安装 PySide2
很简单,直接执行
pip install pyside2
即可下载安装。
建议:如果你的程序要发布给客户使用,建议使用32位的Python解释器,这样最终发布的程序可以兼容32位的Windows。