pyqt5作为python中编写界面的一大利器,得到了广泛的应用。不过我们在编写界面的过程中经常需要修改界面,即qtdesigner生成的ui文件,每次修改都会导致由qtdesigner的ui文件生成的python文件重新生成,这给我们在界面python文件中添加自己编写的一些代码带来了困难,因为我们每次修改界面,生成的界面python文件都会将我们自己添加的代码清空。为了在生成的界面python文件方便添加代码,我们可以通过继承的方式来实现。
我们先用qtDesigner写一个简单的界面,在Dialog中添加一个QLabel和QButton,如下:
生成的Python文件如下:
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'untitled.ui'
#
# Created by: PyQt5 UI code generator 5.10.1
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(400, 300)
self.label = QtWidgets.QLabel(Dialog)
self.label.setGeometry(QtCore.QRect(150, 80, 101, 51))
self.label.setObjectName("label")
self.pushButton = QtWidgets.QPushButton(Dialog)
self.pushButton.setGeometry(QtCore.QRect(150, 200, 75, 23))
self.pushButton.setObjectName("pushButton")
self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
self.label.setText(_translate("Dialog", "TextLabel"))
self.pushButton.setText(_translate("Dialog", "PushButton"))
我们希望点击按钮后label上的文字变为hello world,需要添加一个函数helloworld,代码如下: