继承父类的QMainWindow和Ui_Form后,怎么使用pyqt5的connect生成槽函数
时间: 2024-05-15 07:14:40 浏览: 152
你可以使用如下语法来使用pyqt5的connect生成槽函数:
```python
self.button.clicked.connect(self.slot_function)
```
其中,`button`是按钮的名称,`slot_function`是槽函数的名称。在这个例子中,点击按钮后会触发`slot_function`函数。同时,你也需要在类中定义`slot_function`这个函数,它会完成你需要的操作。
相关问题
import sys from repair import Ui_MainWindow from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget from interface import start from result import Ui_Form from PyQt5.QtGui import QPixmap class Faceshow(QMainWindow, Ui_MainWindow): def __init__(self, parent=None): super(Faceshow, self).__init__(parent) self.setupUi(self) self.main_button.clicked.connect(self.show_resu) self.main_exit.clicked.connect(self.quit) def show_resu(self): img1, img2, text1, text2 = start() resu_show = RESUshow(img1, img2, text1, text2) resu_show.show() def quit(self): self.close() class RESUshow(QWidget, Ui_Form): def __init__(self, img1, img2, text1, text2, parent=None): super(RESUshow, self).__init__(parent) self.setupUi(self) pixmap1 = QPixmap.fromImage(img1) pixmap2 = QPixmap.fromImage(img2) self.label_img1.setPixmap(pixmap1) self.label_img2.setPixmap(pixmap2) self.label_psnr.setText(text1) self.label_ssim.setText(text2) if __name__ == '__main__': app = QApplication(sys.argv) faceshow = Faceshow() faceshow.show() sys.exit(app.exec_())上述代码有什么问题吗?
在代码中没有看到明显的错误,但需要确保以下几点:
1. 代码中需要导入 repair.py, interface.py, result.py 文件,这些文件需要在同一目录下或者在 Python 的搜索路径中。
2. 在运行代码前需要安装 PyQt5 库,可以使用 pip install PyQt5 命令进行安装。
3. 在运行代码前需要确保 repair.py 中的 start 函数能够正常运行,即能够返回四个变量 img1, img2, text1, text2。
from PyQt5 import QtCore, QtGui, QtWidgets from show1 import Ui_Form1 from show2 import Ui_Form2 from show3 import Ui_Form3 class Ui_Form(object): def setupUi(self, Form): Form.setObjectName("Form") Form.resize(400, 300) self.pushButton = QtWidgets.QPushButton(Form) self.pushButton.setGeometry(QtCore.QRect(90, 60, 191, 51)) font = QtGui.QFont() font.setPointSize(9) self.pushButton.setFont(font) self.pushButton.setObjectName("pushButton") self.pushButton_2 = QtWidgets.QPushButton(Form) self.pushButton_2.setGeometry(QtCore.QRect(90, 110, 191, 51)) self.pushButton_2.setObjectName("pushButton_2") self.pushButton_3 = QtWidgets.QPushButton(Form) self.pushButton_3.setGeometry(QtCore.QRect(90, 160, 191, 51)) self.pushButton_3.setObjectName("pushButton_3") self.retranslateUi(Form) QtCore.QMetaObject.connectSlotsByName(Form) def retranslateUi(self, Form): _translate = QtCore.QCoreApplication.translate Form.setWindowTitle(_translate("Form", "Form")) self.pushButton.setText(_translate("Form", "无人机群显示")) self.pushButton_2.setText(_translate("Form", "无人机群数据分析展示")) self.pushButton_3.setText(_translate("Form", "无人机群飞行轨迹展示")) class MainWindow(QtWidgets.QMainWindow): def __init__(self): super().__init__() self.ui = Ui_Form() self.ui.setupUi(self) self.ui.pushButton.clicked.connect(self.showForm1) self.ui.pushButton_2.clicked.connect(self.showForm2) self.ui.pushButton_3.clicked.connect(self.showForm3) def showForm1(self): self.form1 = QtWidgets.QWidget() self.ui1 = Ui_Form1() self.ui1.setupUi(self.form1) self.form1.show() def showForm2(self): self.form2 = QtWidgets.QWidget() self.ui2 = Ui_Form2() self.ui2.setupUi(self.form2) self.form2.show() def showForm3(self): self.form3 = QtWidgets.QWidget() self.ui3 = Ui
_Form3()
self.ui3.setupUi(self.form3)
self.form3.show()
这段代码是一个基于PyQt5的GUI程序,使用了三个不同的UI文件(show1.py、show2.py、show3.py)来展示不同的功能界面。在UI类中,setupUi()方法用于设置UI的各个元素,retranslateUi()方法用于设置UI的翻译文本。在MainWindow类中,通过连接按钮的clicked信号,来分别展示不同的UI界面。showForm1()、showForm2()、showForm3()方法分别用于展示不同的UI界面,其中每个界面都有对应的UI类来设置UI元素。
阅读全文