优点
- 基于高性能的Qt的GUI控件集。
- 能够跨平台运行在Windows、Linux和Mac OS等系统上。
- 使用信号/槽(signal/slot)机制进行通信。
- 对Qt库的完全封装。
- 可以使用Qt成熟的IDE(如Qt Designer)进行图形界面设计,并自动生成可执行的Python代码。
- 提供了一整套种类繁多的窗口控件。
信号/槽
Qt使用一种称为信号/槽的机制在窗口控件之间传递事件和消息。这种机制完全不同于其他图形界面开发库所采用的回调(callback)机制,使用信号/槽可以使程序更加安全和简洁。所开发的应用程序越大,Qt/PyQt的这个优势就越明显。
打包
打包资源文件:
- 在 spec 脚本文件中,添加
datas=[('static', 'static')],这表示在程序在程序运行时将 static 目录解压到临时目录下的 static 目录中。 - 在代码中创建一个获取资源目录的函数
def resource_path(relative_path):
"""Get absolute path to resource, works for dev and for PyInstaller"""
try:
# PyInstaller creates a temp folder and stores path in _MEIPASS
base_path = sys._MEIPASS
except Exception:
base_path = os.path.abspath(".")
print(os.path.abspath("."))
return os.path.join(base_path, relative_path)QT creater
生成 .ui xml 类型的布局文件,并使用 pyuic 编译为 python 文件。