Python中经常使用的GUI控件集有PyQt、Tkinter、wxPython、Kivy、PyGUI和Libavg。其中PyQt是Qt(c++语言实现的)为Python专门提供的扩展
PyQt是一套Python的GUI开发框架,即图形用户界面开发框架.。而在Python中则使用PyQt这一工具包(PyQt5、PyQt5-tools、PyQt5-stubs),它是Python编程语言和Qt库的成功融合。
一、PyQt安装
pip install PyQt5 安装PyQt5。
pip install PyQt5-tools 安装Qt工具软件。
pip install PyQt5-stubs 安装PyQt5语法检测包(可选)。
安装完成之后可以在Python的安装目录/Lib/site-packages
中找到PyQt5目录。
示例:
main.py文件
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayoutclass MyApp(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):# 创建一个垂直布局layout = QVBoxLayout()# 创建一个标签,并设置文本内容label = QLabel("Hello, World!")# 将标签添加到布局中layout.addWidget(label)# 设置窗口的布局self.setLayout(layout)# 设置窗口的大小self.setGeometry(300, 300, 300, 150)# 设置窗口的标题self.setWindowTitle('Hello World')# 显示窗口self.show()# 创建应用程序对象
app = QApplication(sys.argv)# 创建实例
ex = MyApp()# 进入应用程序的主循环,等待事件处理
sys.exit(app.exec_())
执行命令:python main.py
运行过程中,如果出现下列错误。
1、ModuleNotFoundError: No module named 'PyQt5'
说明没有PyQt5安装或安装成功,解决方法:安装PyQt5
pip install PyQt5 -i https://pypi.tuna.tsinghua.edu.cn/simple
2、ImportError: DLL load failed while importing QtWidgets: 找不到指定的程序。
先卸载PyQt5,再安装PyQt5。
pip uninstall PyQt5
pip install PyQt5 -i https://pypi.tuna.tsinghua.edu.cn/simple
二、安装PyQt Integration插件。
1、Qt Designer、PyUIC、PyRcc
安装PyQt Integration插件(Qt Designer、PyUIC、PyRcc),可以帮我们自动生成UI相关代码和资源。
Qt Designer:可以通过Qt Designer来编写UI界面,Qt Designer的设计符合MVC的架构,其实现了视图和逻辑的分离,从而实现了开发的便捷。Qt Designer中的操作方式十分灵活,其通过拖拽的方式放置控件可以随时查看控件效果。Qt Designer随PyQt5-tools包一起安装,其安装路径在 “Python安装路径\Lib\site-packages\pyqt5-tools”下。
PyUIC:Qt Designer生成的.ui文件(实质上是XML格式的文件)可以通过pyuic5工具或python转换成.py文件。
命令格式:
pyuic5 -o destination.py source.ui
或者
python.exe -m PyQt5.uic.pyuic source.ui -o destination.py
PyRcc:在使用PyQt开发界面时,在Qt Designer中使用的图片等资源需要将其编译为py文件,这时需要用到PyRcc工具方便地将qrc文件转换为py文件。
资源文件编写说明
3.1新建resource.qrc(也可以通过Qt Designer生成qrc文件),代码如下:
<!DOCTYPE RCC><RCC version="1.0">
<qresource>
<file alias="contacts.png">ico/contacts.png</file>
<file alias="exit.png">ico/exit.png</file>
<file alias="about.png">ico/about.png</file>
<file alias="config.png">ico/config.png</file>
<file alias="help.png">ico/help.png</file>
</qresource>
</RCC>
3.2命令格式:
pyrcc5 -o resource.py resource.qrc
2、在PyCharm中配置Qt Designer、PyUIC、PyRcc
1、点击菜单栏“File”,弹出下拉框,选择“Setting”,弹出设置界面。在设置界面中选择“Tools”→“External Tools”,操作如下图所示。
2、外部工具配置。
名称:QtDesigner
工具设置
程序:E:\Anaconda\anaconda3\Library\bin\designer.exe
工作目录:$FileDir$
名称:PyUIC
工具设置
程序:E:\Anaconda\anaconda3\envs\pytorch\python.exe
实参:-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
工作目录:$FileDir$
或者
程序:D:\anaconda3\Scripts\pyuic5.exe
实参:$FileName$ -o $FileNameWithoutExtension$.py
工作目录:$FileDir$
名称:PyRcc
工具设置
程序:D:\anaconda3\Scripts\pyrcc5.exe
实参:$FileName$ -o $FileNameWithoutExtension$_rc.py
工作目录:$FileDir$
三、PyQt5使用
1、首先打开或新建一个Python项目,点击菜单栏中的“Tools”,选择“External Tools”,可以看到之前设置好的三个工具,选择“Qt Designer”打开Qt设计工具,步骤如下图所示:
2、打开软件后,在弹出的引导界面选择“Main Window”,然后点击“创建”按钮,创建一个窗体界面,如下图所示:
3、创建简单界面。
最终完成后的界面如下图所示,点击“保存”保存为ui文件并置于项目目录下,比如:untitled9.ui。
4、右键点击ui文件(比如:untitled9.ui),选择“External Tool”,再选择PyUIC,将ui文件转换成py文件。
5、右键点击qrc文件(比如:my.qrc),选择“External Tool”,再选择PyRcc,将qrc文件转换成py文件。
6、编辑ui文件。
6.1)右键点击ui文件(比如:untitled9.ui),选择“External Tool”,再选择QtDesigner,弹出Qt Designer界面。
6.2)在Qt Designer界面,点击“打开”按键。
6.3)弹出对话框,选择ui文件(比如:untitled9.ui),打开。
6.4)打开文件后,就可以编辑ui文件。
7、新建一个python文件(比如:run_untitled.py),测试刚才的ui生成的py文件。
import sys
import untitled9from PyQt5.QtWidgets import QApplication, QMainWindowif __name__ == '__main__':# 实例化,传参app = QApplication(sys.argv)# 创建对象mainWindow = QMainWindow()# 创建ui,引用untitled文件中的Ui_MainWindow类ui = untitled9.Ui_MainWindow()# 调用Ui_MainWindow类的setupUi,创建初始组件ui.setupUi(mainWindow)# 创建窗口mainWindow.show()# 进入程序的主循环,并通过exit函数确保主循环安全结束(该释放资源的一定要释放)sys.exit(app.exec_())
8、运行run_untitled.py
8、使用pyinsaller生成exe文件。
8.1 cmd窗口下,进入工程目录下。
8.2 执行pyinstaller命令,生成exe文件
pyinstaller --onedir --noconsole run_untitled.py --name test
8.3在dist\test目录下,执行test.exe文件。