1.PyQt5简介
PyQt是基于QT的Python封装,标准的QT开发使用的是C++语言,开发效率比较低,而使用Python语言进行封装后,开发效率也大大提升。并且还可以进行可视化的开发。
PyQt是英国的Riverbank Computing公司开发的一套封装QT程序库的Python GUI库。
PyQt5有两种版本:GPL(开源)和商业授权。
PyQt5的模块 1. QtCore:包含了核心的非GUI功能。 2. QtGui:包含了窗口系统、事件处理、2D图像等。 3. QtWidgets:包含了一系列创建桌面应用的UI元素
2.安装PyQt5
在使用PyQt5开发GUI程序之前,首先要安装PyQt5。包括PyQt5的运行环境,以及用于可视化开发的QTDesigner,用于将 .ui文件转化为Python代码的PyUIC.
2.1 PyQt5开发环境搭建
方法一:下载PyQt5的源代码:
https://www.riverbankcomputing.com/software/pyqt/download5
下载完之后,按说明配置和编译PyQt5的源代码:
;(不推荐)
方法二:
pip install pyqt5 pip unstall pyqt5
安装完成后,运行Python命令,进入Python的REPL环境,输入import PyQt5,按Enter键后,如果没有抛出异常,说明PyQt5已经安装成功。
2.2 配置QTDesigner(可视化开发)
QTDesigner是用于可视化开发的工具,在QT安装包中。在使用QTDesigner之前,先要安装QT。
方法一:下载QT的在线安装版本(请选择开源版本)
方法二:下载QT的离线安装包,请选择相应的操作系统版本
https://download.qt.io/archive/qt
如果使用的是Anaconda Python开发环境,不需要安装QT,因为Anaconda中已经集成了QTDesigner。
1.苹果系统版本的Anaconda,QTDesigner路径:<Anaconda根目录>/bin/Designer.app
2.windows:<Anaconda根目录>\Library\bin\designer.exe
得到QTDesigner–>选择Python IDE,将QTDesigner与Python IDE关联,也就是在Python IDE中调用QTDesigner。
将QTDesigner添加到pycharm的扩展工具中。
步骤: pycharm–> File–> Settings–> Tools–> External Tools(在右侧会显示当前所有的扩展工具,默认是空)–> 单击加号(+)按钮添加一个扩展工具–> 弹出Create Tool。
Working directory–designer.exe工作路径,设置为 $ProjectFileDir$
完成以上工作后,关闭Create Tool对话框以及 Preference窗口,看到Pycharm–>Tools–>External Tools–>QTDesigner–>单击(启动)
1.第一次启动QTDesigner–>询问要建立哪种类型的窗口(这里选择Main Window)–>单击“创建”按钮。
新建窗口后,会出现一个空的窗口。
2.在窗口的左侧出现一个 “窗口部件盒” 窗口,如下图所示:
3.从 “窗口部件盒” 上可以拖动相应的控件到上面创建的空的窗口上,拖动效果如下图所示:
4.按Ctrl+S(windows)或者Command+S(Mac OS X)键保存窗口 -->会将窗口保存成一个扩展名为 “ .ui ”的文件,这是窗口布局文件。
建议:先用Pycharm建立一个Python工程,然后将.ui文件放到工程目录,这样使用起来更方便。
2.3 配置PyUIC(命令行工具)
将设计好的窗口保存成.ui 的文件,但是这个.ui 文件并不能被Python直接使用,需要用工具将这个.ui文件转换为Python源代码文件(.py文件),这个工具就是PyUIC。
在pycharm上配置PyUIC与配置QTDesigner类似,
方法一:
name----PyUIC Program:/Users/lining/ancounda/bin/python.exe Arguments:$FileName$ -o $FileNameWithoutExtension$.py Working dirctory: $FileDir$
方法二:
PyQt的安装目录的bin子目录有一个pyuic5命令,直接执行这个命令也可以将.ui文件转换为.py文件。
name----PyUIC Program:PyUIC位于当前解析器的Scripts\pyuic5.exe Arguments:$FileName$ -o $FileNameWithoutExtension$.py Working dirctory: $FileDir$
不管使用那种配置,在External Tools菜单项中都会多出一个PyUIC子菜单项。
假设保存的.ui文件名为main.ui。
1.在工程目录中选中该文件
2.右击弹出的快捷菜单中选择External Tools–>MyUIC菜单栏(就会在当前目录生成一个main.py文件,打开该文件全是Python代码,这些代码是从XML格式的main.ui文件转换为Python语言格式的,转化后的目标代码是使用Python代码动态创建main.ui上的控件。)转换后的Python工程目录结构如图所示:
main.py文件中只包含了一个名为Ui_MainWindow的类,在这个类的setupUi方法中创建了所有的控件,不过这个类还不能直接运行,需要在Test.py文件中输入如下代码才能启动程序。
# QApplication,QMainWindow这两个类都在PyQt5.QtWidgets模块中 import sys import main.py from PyQt5.QtWidgets import QApplication,QMainWindow if __name__ == "__main__": app = QApplication(sys.argv) #QApplication类的实例相当于整个应用程序 MainWindow = QMainWindow() ui = main.Ui_MainWindow() ui.setupUi(MainWindow) # 调用setupUi方法动态创建控件 MainWindow.show() # 显示窗口 sys.exit(app.exec_()) # 当窗口关闭后会退出程序
现在选中Test.py文件,运行,会显示窗口。