PyQt 的环境配置

2022-12-06 09:31:40 浏览数 (1)

写在前面:

为什么用pyqt?

给自己的程序做一个图形界面会比较好用。而qt是目前比较流行的图形界面库,功能全面、强大。使用工具qt designer,通过拖拽的方式就可以制作出一个图形界面。

本文参考了下面两篇文章配置pyqt。

【python】PyQt6和pyqt6-tools在PyCharm2021的详细配置方法_特大辉哥的博客-CSDN博客_pyqt6配置

PyQt/PySide6快速入门 - 1 安装,配置,打包成exe - 简书 (jianshu.com)

一、安装注意事项

有两点需要特别注意:

1.安装前先升级pip。升级pip时 一定要在后面加--user,否则出现权限问题,无法安装。然后就出现一个尴尬的情况,你卸载了旧的pip,但是又没安装上新的。

就要借助一些其他东西来安装pip了。比如conda。非常麻烦。

升级pip:

pip install --upgrade pip --user

2.安装pyqt6、pyqt6-tools

pip install PyQt6

pip install pyqt6-tools

然后会报错:

ERROR: ImportError: DLL load failed while importing QtGui

需要卸载再安装pyqt6:

pip uninstall PyQt6

pip install PyQt6

这样就好了。(玄学问题)

下面是一个测试程序,如果正常运行没有报错,出现一个Hello Qt的窗口就安装好了。

代码语言:javascript复制
#!/usr/bin/python
import sys
from PyQt6.QtWidgets import QApplication, QWidget, QPushButton

def main():
    app = QApplication(sys.argv)
    w = QWidget()
    w.setWindowTitle('Simple')
    btn = QPushButton('Hello PyQt6!', w)
    btn.move(50, 50)
    w.show()
    sys.exit(app.exec())

if __name__ == '__main__':
    main()

二、Pycharm配置

2.1 QtDesigner: 图形化拖拽来设计GUI

打开Pycharm,打开设置界面(快捷键Ctrl Atl S),在工具选项里找到外部工具:

说明:

名称(Name),组(Group) :就是起个名字。我这里名称填了QtDesigner,组填了PyQt6

工具设置: 程序:填Python目录下的Scriptspyqt6-tools.exe 实参:填designer

工作目录:FileDir 这个表示你在哪个文件夹打开的designer,生成的ui文件就在哪个文件夹。

(实际上“外部工具”就是一个快捷键,等效于在Python目录下的Scripts文件夹下启动命令行,执行pyqt6-tools.exe designer 。但是方便很多)

2.2 PyUiC: designer生成的UI文件转化为py文件

和2.1 类似

程序:填Python目录下的Scriptspyuic6.exe 实参:注意,这里要填FileName -o FileNameWithoutExtension.py 工作目录:FileDir ,生成的py文件和ui文件在同一目录。

2.3 使用QtDesigner

我们右键文件夹,然后选择pyQt6-->QtDesigner

就会进入设计界面,我们就可以在这里用拖拽的方式设置界面。

随便拖拽了两个Label,然后ctrl s保存。文件名这里我设置为hello.ui

文件夹下就多了hello.ui文件,也就是我们的界面。

2.4 使用Pyuic

Pyuic可以将.ui文件变成相应的python代码,使用如下(右键.ui文件,选择PyQt6-->PyUic):

然后就会得到同名的.py文件(hello.py)。里面定义了一个类Ui_MainWindow,也就是我们的窗口。

hello.py最下面,我们添加如下语句,将窗口启动起来:

代码语言:javascript复制
if __name__ == '__main__':
    import sys

    from PyQt6 import QtCore, QtGui, QtWidgets
    from PyQt6.QtWidgets import QApplication, QMainWindow
    
    app = QApplication(sys.argv)
    myw = QMainWindow()
    myWin = Ui_MainWindow().setupUi(myw)
    myw.show()
    sys.exit(app.exec())

运行hello.py

看到这个窗口,pyqt的配置就算完成了。

0 人点赞