在使用python语言进行可视化编程时,qt designer可以实现拖拽完成可视化控件设计,使用十分方便。

安装pyQT5和QT Designer

pip install pyqt5
  pip install pyqt5-tools

安装好之后在Python安装目录的\Lib\site-packages\pyqt5-tools\designer文件夹下面能够找到designer.exe,运行即可
因为我用的是anaconda,所以其路径为:D:\ProgramData\Anaconda3\Lib\site-packages\pyqt5_tools\Qt\bin\designer.exe
双击designer.exe即可进行界面设计了。

配置pyQT5

打开PyCharm,选择Settings -> Tools -> External Tools,点击左上角的加号。

python与qt联调 python程序与qt界面的集成_pyqt


如上图所示:

1. 添加了QtDesigner作为PyCharm的外置工具:

Name填入QtDesigner,Program选择我们上述路径下安装的designer.exe。Working directory则选择我们的工作目录。然后点击OK。

2. 添加PyUIC(UI转换工具)

PyUIC的Program为Python.exe,在Python的安装目录下面的Scripts目录下,Working directory同理设为我们的工作目录,Arguments则填入如下代码:

-m PyQt5.uic.pyuic  $FileName$ -o $FileNameWithoutExtension$.py
添加pyrcc用于PyQt5的资源文件转码

pyrcc的Program为Python.exe,在Python的安装目录下面的Scripts目录下,Working directory同理设为我们的工作目录,Arguments则填入如下代码:

$FileName$ -o $FileNameWithoutExtension$_rc.py
注意:

退出之前,需要 点击Apply保存配置。

按下图中可以查看配置情况。

python与qt联调 python程序与qt界面的集成_pyqt_02

使用QT Designer

双击打开designer.exe,选择基础模板,通常选择Main Windows和Widget。点击Create创建。

左侧为所有的界面控件,可以边学习边使用。

python与qt联调 python程序与qt界面的集成_python_03


如下图,设计一个简单的界面:

python与qt联调 python程序与qt界面的集成_编程语言_04


其上述添加配置中的Working directory的路径下,会出现一个.ui文件。

将.ui文件转换为.py文件

在PyCharm中,找到.ui文件,右键 打开菜单找到External Tools->PyUIC。点击之后,我们在相应工程目录下会产生一个.py文件。(注意,.ui文件必须存放在我们的External Tools中设置的相应项目目录下)

python与qt联调 python程序与qt界面的集成_编程语言_05


转换完成之后,打开.py文件。

观察上述文件,可以看到如果不通过Qt Designer来制作界面的话,我们将会一次次地调试程序,来讲按钮和Label等放在合适的位置,这将是极其痛苦的过程。而通过Qt Designer,我们可以快速地制作UI,并生成Python的代码,从而实现快速地UI的开发。

让程序运行起来

然而,此时之间运行这个转换好的Python文件是无法显示任何窗口的。因为这个Python文件只有定义主窗口以及其控件的代码,并没有程序入口的代码。我们需要另外新建一个python文件,将下面的代码复制进去。

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from mainWindow import *

class MyWindow(QMainWindow, Ui_MainWindow):
    def __init__(self, parent=None):
        super(MyWindow, self).__init__(parent)
        self.setupUi(self)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    myWin = MyWindow()
    myWin.show()
    sys.exit(app.exec_())

运行这个文件。即可弹出之前设计的可视化界面。

总结

上述是pyQT的基本是用流程,虽然不全面,但是基本步骤已具备,剩下的就需要在学习中不断提升自己的编程能力,设计出更加出色的软件。