摘要:GUI是图形用户界面的意思,在Python中使用PyQT可以快速搭建自己的应用,使得自己的程序看上去更加高大上,学会GUI编程可以使得自己的软件有可视化的结果,更方便地参加“人工智能+”或其他创新创业大赛。
GUI是图形用户界面的意思,在Python中使用PyQT可以快速搭建自己的应用,使得自己的程序看上去更加高大上,学会GUI编程可以使得自己的软件有可视化的结果,更方便地参加“人工智能+”或其他创新创业大赛。
创建项目并添加虚拟环境设置:
在pycharm中,点击‘文件’->‘新建项目’,项目名称为“PyQtTest”,设置虚拟环境为conda下的cv环境,(可根据个人情况自行设置),如下图。
安装PyQT:
pip install pyqt6 -i https://pypi.tuna.tsinghua.edu.cn/simple --user打开pychar,点击‘终端’,输入以下命令后按回车,等待安装完成。
继续安装QtDesigner:
pip install pyqt6-tools -i https://pypi.tuna.tsinghua.edu.cn/simple --user其他常用方法:
在pychar中添加清华镜像源,点击pychar左侧的‘python软件包’图片,点击下面的齿轮图片,点击‘管理仓库’按钮,在仓库UTL中输入清华镜像源:https://pypi.tuna.tsinghua.edu.cn/simple/,点击确定即可。
点击‘文件’->‘设置’->‘python’->‘解释器’,点击上面的‘+’号,搜索框输入pyqt6和pyqt6-tools,就能安装相关的包。
使用外部工具:
点击PyCharm的‘文件’->‘设置’->‘工具’->‘外部工具’,打开外部工具界面,点‘+’号进入添加外部工具界面。在‘Name’处输入工具名称,这个名称可以随便取,只要自己清楚就行,我这里写的扩展工具名是Qt designer。
在python安装目录下的Lib\site-packages\PyQt6_tools文件夹里找到安装的designer.exe所在的路径(我这个pyqt是安装到cv环境下的,先找到我安装的cv环境根目录,找到anaconda3的根目录下的envs文件夹,打开下面的cv的环境,然后在搜索框里搜designer.exe,选中并右键单击后选择‘打开文件所在的位置’,就找到文件所在的路径)
选中此程序,右键单击,选择‘打开文件所在的位置’。
我的路径在:D:\Users\yangtaiyun\anaconda3\envs\cv\Lib\site-packages\qt6_applications\Qt\bin
将路径复制到‘程序’处,注意要包含designer.exe的文件名。
‘工作路径’处设置自己的工作路径,如D:\Users\yangtaiyun\Pycharm-professional-Projects\PyQtTest,qtdesigner生成的ui文件会默认保存在该路径。‘Arguments’不用设置,确定即可,如下图所示,设置好后点击‘确定’即可。
打开Qtdesiger:
代码框左边位置右键点击,选择‘外部工具’->’Qtdesigner’,就能打开QtDesigner的界面。
配置pyuic:
接下来添加pyuic,pyuic用于将qtdesigner生成的.ui文件转换成python可识别的.py文件。
打开‘文件’->‘设置’->‘扩展工具’点击‘+’号。
在‘名称’处输入pyuic。
在‘程序’处输入python.exe所在的路径和文件名。
(我的在cv环境下的python.exe,即D:\Users\yangtaiyun\anaconda3\envs\cv\python.exe)
在‘实参’处输入:
-m PyQt6.uic.pyuic -o $FileNameWithoutExtension$.py $FileName$在‘工作目录’处输入:
$FileDir$点击‘确定’,Qtdesiger就配置完毕,如下图所示。
这样生成的py文件就会和被转换的ui文件位于相同的文件夹下。
界面设计测试:
代码框左边位置右键点击,选择‘外部工具’->’Qt designer’,就能打开Qt Designer的界面,选择‘Main Window’,点击‘创建’。
点击‘文件’->‘保存’,将当前界面保存到我们刚创建的PyQtTest项目文件夹下,文件名设为QtTest.ui。
保存好后,回到PyCharm中,可以看到我们的PyQtTest项目下多了一个QtTest.ui文件,双击打开,里面是用代码的形式实现我刚才的界面操作,但是它是.ui文件,不是.py文件。
通过外部工具转换:
鼠标右键单击‘QtTest.ui’文件调出右键菜单,单击‘外部工具’->‘pyuic’,程序会调用pyuic,将ui文件转换为py文件,执行完成后就会在该项目中生成一个QtTest.py文件了,打开之后,里面就是将ui文件转换为py文件的代码。
写个主函数:
右键单击PyQtTest项目,选择‘新建’->‘python文件’,新建一个Python文件,文件名设置为‘main.py’,用这个主函数读取QtTest.py里面的内容并把它可视化,打开main.py文件输入如下代码:
from QtTest import Ui_MainWindowimport sysfrom PyQt6.QtWidgets import QApplication, QMainWindowclass CamShow(QMainWindow, Ui_MainWindow):def __init__(self, parent=None):super(CamShow, self).__init__(parent)self.setupUi(self)if __name__ =='__main__':app = QApplication(sys.argv)ui = CamShowui.showsys.exit(app.exec)在窗口中右键单击,选择‘运行main’,弹出如下窗口中的框,表明PyQT和QtDesigner都已经安装成功了。
PyQt制作界面实战图片展示功能:
接下来,在main.py中添加逻辑功能代码实现简易软件的封面。
打开Qt Designer
现在Qt Designer中做相关的设计:
在Qt Designer中,点击‘窗体’菜单,点击‘预览’,可以查看预览效果。
在pycharm的主程序main.py中添加相关的逻辑代码实现上述功能:
from QtTest import Ui_mainWindowimport sysfrom PyQt6.QtWidgets import QApplication, QMainWindow, QFileDialog, QMessageBoxfrom PyQt6 import QtGuiclass CamShow(QMainWindow, Ui_mainWindow):def __init__(self, parent=None):super(CamShow, self).__init__(parent)self.setupUi(self)# 信号与槽self.OpenFileBtn.clicked.connect(self.loadImage)self.actionOpen.triggered.connect(self.loadImage)self.actionexit.triggered.connect(self.exit)self.actionabout.triggered.connect(self.about)def loadImage(self):# print("按钮被按下了")self.infolabel.setText("欢迎使用该软件,「图文版」按钮被按下了~")self.fname, _ = QFileDialog.getOpenFileName(self, caption='选择图片', directory='.', filter='图像文件(*.jpg, *.png)')print(self.fname)pix = QtGui.QPixmap(self.fname).scaled(self.ImageLabel.width, self.ImageLabel.height)self.ImageLabel.setPixmap(pix)def exit(self):sys.exit(app.exec)def about(self):self.infolabel.setText("欢迎使用该软件,帮助按钮被按下了~")QMessageBox.information(self, title='软件说明', text='该软件有xxx公司开发,软件版本为2.0')if __name__ =='__main__':app = QApplication(sys.argv)ui = CamShowui.showsys.exit(app.exec)PyCharm中运行效果展示如下:
Python GUI本次学习完成,有疑问留言~[归正视频,归正运动能量站,运动科技小站]
来源:归正视频创作
