conda activate N:\PyPro\ProjectPyQt5\envs
pip install pyqt5 -i https://pypi.mirrors.ustc.edu.cn/simple/
pip install PyQt5-tools -i https://pypi.mirrors.ustc.edu.cn/simple/
image.png
设置qt工具
image.png
#设计师
Name:QtDesigner
Group:External Tools
Program:D:\Program Files\Python39\Lib\site-packages\qt5_applications\Qt\bin\designer.exe
Arguments:$FileDir$\$FileName$
Working directory:$FileDir$
image.png
#ui转py
Name:pyuic5
Group:External Tools
Program:D:\Program Files\Python39\Scripts\pyuic5.exe
Arguments:$FileName$ -o $FileDir$\..\py\$FileNameWithoutExtension$.py
Working directory:$FileDir$
image.png
#资源
Name:pyrcc5
Group:External Tools
Program:D:\Program Files\Python39\Scripts\pyrcc5.exe
Arguments:$FileName$ -o $FileDir$\..\py\$FileNameWithoutExtension$.py
Working directory:$FileDir$
image.png
image.png
先用Designer设置界面保存到指定文件夹,再用pyuic5转为py类,写一个py继承改类
如:
转换后的py为
目录结构:
image.png
rom PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget)
self.verticalLayout.setObjectName("verticalLayout")
self.pushButton_out = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_out.setObjectName("pushButton_out")
self.verticalLayout.addWidget(self.pushButton_out)
self.pushButton_print = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_print.setObjectName("pushButton_print")
self.verticalLayout.addWidget(self.pushButton_print)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 23))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.pushButton_out.setText(_translate("MainWindow", "PushButton"))
继承改py类
import sys
from PyQt5.QtCore import pyqtSignal
from PyQt5.QtWidgets import QMainWindow
from .Ui_MainWindow import Ui_MainWindow
class MainWindow(QMainWindow, Ui_MainWindow):
write1 = pyqtSignal(str)#定义信号有参数必须指定类型
def __init__(self):
super(QMainWindow, self).__init__()
self.setupUi(self) # 渲染页面控件
self.connect_signals() # 设置信号槽
def connect_signals(self):
self.pushButton_out1.clicked.connect(self.printStr)
self.write1.connect(self.printA)#槽函数不写参数列表
def printStr(self, checked):
print("print" + str(checked))
self.write1.emit("fghfhg")#触发信号
def printA(self,data):
print("print"+data)
初始化mainwindow
import sys
from PyQt5.QtWidgets import QApplication
from MainUi.py.MainWindow import MainWindow
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
app.exec_()
网友评论