1 说明
因为个人测试,需要在Python中引入一个GUI的界面环境,本人熟悉Qt,所以理所当然地使用了PyQt5这个环境,特此将整个过程整理总结一下,以便更好地让Python和Qt为大家服务。
本文先在Win10上从0开始搭建Python3的环境,然后在这个环境上搭建PyQt5的开发运行环境,最后创建了一个包含了用qt designer设计的窗口的例程。
2 安装Python3
本文使用Python3.8.2
进入https://www.python.org/getit/
点击如下图所示的链接
在打开的页面中翻到最底部,点击如下图所示的链接,下载Windows 64位的安装包
双击下载的安装包,按照下面的步骤和选择安装Python,考虑到部分群众对Python和Qt的了解有限,请先严格按照截图中的配置和步骤来操作,以后熟悉了再随意发挥
我们这里把Python3.8.2成功安装到了E:/Python382这个路径下
3 安装PyQt5和PyQt5-tools
打开Windows的CMD(什么是CMD?????!!!!!!!!!!!!),分别输入下面的命令安装PyQt5和PyQt5-tools
注:网上的资料都是使用pip install PyQt5直接安装,但我的测试结果是这样直接安装总会报错,使用 -i https://xxxxxxxx到国内镜像上下载安装测试顺利且成功
PyQt5
E:/Python382/Scripts/pip.exe install pyqt5 -i https://pypi.tuna.tsinghua.edu.cn/simple
PyQt5-tools
E:/Python382/Scripts/pip.exe install pyqt5-tools -i https://pypi.tuna.tsinghua.edu.cn/simple
pip list查看一下,可知PyQt5和PyQt5-tools已经成功安装
4 使用PyQt5-tools中的designer创建一个简单的窗口并保存为ui文件
在CMD中使用命令行打开designer
编辑如下所示的一个简单的窗口,窗口包含了一个按钮和一个标签控件
编辑完成后将这个窗口保存为mywidget.ui文件,本文中我将这个文件保存到了G:/GWorkSpace/20200404/文件夹中
5 使用PyQt5-tools中的pyuic5工具将mywidget.ui文件翻译为mywidget_ui.py文件
CMD切换到G:/GWorkSpace/20200404/文件夹下,使用pyuic5工具翻译ui文件为py文件
翻译后生成的mywidget_ui.py文件内容为
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'mywidget.ui'
#
# Created by: PyQt5 UI code generator 5.13.2
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MyWidget(object):
def setupUi(self, MyWidget):
MyWidget.setObjectName("MyWidget")
MyWidget.resize(271, 227)
self.buttonTest = QtWidgets.QPushButton(MyWidget)
self.buttonTest.setGeometry(QtCore.QRect(70, 150, 111, 41))
self.buttonTest.setObjectName("buttonTest")
self.labelTest = QtWidgets.QLabel(MyWidget)
self.labelTest.setGeometry(QtCore.QRect(60, 60, 151, 51))
self.labelTest.setObjectName("labelTest")
self.retranslateUi(MyWidget)
QtCore.QMetaObject.connectSlotsByName(MyWidget)
def retranslateUi(self, MyWidget):
_translate = QtCore.QCoreApplication.translate
MyWidget.setWindowTitle(_translate("MyWidget", "Form"))
self.buttonTest.setText(_translate("MyWidget", "Test"))
self.labelTest.setText(_translate("MyWidget", "Test"))
6 创建main.py, mywidget.py等测试文件
mywidget.py
# -*- coding: utf-8 -*-
from PyQt5.QtWidgets import QWidget, QPushButton, QLabel
import mywidget_ui
class MyWidget(QWidget):
def __init__(self):
super(MyWidget, self).__init__()
self.ui = mywidget_ui.Ui_MyWidget()
self.ui.setupUi(self)
self.initEvent()
def initEvent(self):
self.ui.buttonTest.clicked.connect(self.changeText)
def changeText(self):
print("buttonTest clicked!")
self.ui.labelTest.setText("Hello, PyQt5!")
main.py
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import QWidget, QApplication
from mywidget import MyWidget
app = QApplication(sys.argv)
myWidget = MyWidget()
myWidget.setWindowTitle("PyQt5 Test")
myWidget.show()
sys.exit(app.exec())
7 运行测试程序
CMD中运行
运行效果(点击按钮前)
运行效果(点击按钮后)
(--------------------完----------------------)