PyQt5实现界面(页面)跳转的示例代码

时间:2021-05-22

网上关于PyQt5的教程很少,特别是界面跳转这一块儿,自己研究了半天,下来和大家分享一下

一、首先是主界面

# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 'Form.ui'## Created by: PyQt5 UI code generator 5.10.1## WARNING! All changes made in this file will be lost!#要注意的是跳转界面第二个必须使用QDialog类,不能使用QWidget,我也不知道为什么,特别注意from PyQt5 import QtCore, QtGui, QtWidgetsfrom PyQt5.QtWidgets import QMainWindow, QApplicationimport Dialog1import Dialog2import sysclass Ui_Form(object): #这是用PyQt Designer生成的代码,很简单的,拖动控件,生成ui文件,然后UIC转换成py文件 def setupUi(self, Form): Form.setObjectName("Form") Form.resize(440, 310) self.form = Form self.btn_d1 = QtWidgets.QPushButton(Form) self.btn_d1.setGeometry(QtCore.QRect(60, 140, 75, 23)) self.btn_d1.setObjectName("btn_d1") self.btn_d2 = QtWidgets.QPushButton(Form) self.btn_d2.setGeometry(QtCore.QRect(180, 140, 75, 23)) self.btn_d2.setObjectName("btn_d2") self.btn_exit = QtWidgets.QPushButton(Form) self.btn_exit.setGeometry(QtCore.QRect(310, 140, 75, 23)) self.btn_exit.setObjectName("btn_exit") self.retranslateUi(Form) QtCore.QMetaObject.connectSlotsByName(Form) def retranslateUi(self, Form): _translate = QtCore.QCoreApplication.translate Form.setWindowTitle(_translate("Form", "Form")) self.btn_d1.setText(_translate("Form", "Demo1")) self.btn_d1.clicked.connect(self.jump_to_demo1) self.btn_d2.setText(_translate("Form", "Demo2")) self.btn_d2.clicked.connect(self.jump_to_demo2) self.btn_exit.setText(_translate("Form", "Exit")) self.btn_exit.clicked.connect(self.exit) def jump_to_demo1(self): #这一块注意,是重点从主界面跳转到Demo1界面,主界面隐藏,如果关闭Demo界面,主界面进程会触发self.form.show()会再次显示主界面 self.form.hide() #如果没有self.form.show()这一句,关闭Demo1界面后就会关闭程序 form1 = QtWidgets.QDialog() ui = Dialog1.Ui_Dialog1() ui.setupUi(form1) form1.show() form1.exec_() self.form.show() def jump_to_demo2(self): self.form.hide() form2 = QtWidgets.QDialog() ui = Dialog2.Ui_Dialog2() ui.setupUi(form2) form2.show() form2.exec_() self.form.show() def exit(self): self.form.close()if __name__ == "__main__": app = QApplication(sys.argv) form = QtWidgets.QWidget() window = Ui_Form() window.setupUi(form) form.show() sys.exit(app.exec_())

二、跳转界面Demo1

# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 'Dialog1.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, QtWidgetsclass Ui_Dialog1(object): def setupUi(self, Dialog1): Dialog1.setObjectName("Dialog1") Dialog1.resize(400, 300) self.dialog=Dialog1 self.pushButton = QtWidgets.QPushButton(Dialog1) self.pushButton.setGeometry(QtCore.QRect(140, 140, 75, 23)) self.pushButton.setObjectName("pushButton") self.retranslateUi(Dialog1) QtCore.QMetaObject.connectSlotsByName(Dialog1) def retranslateUi(self, Dialog1): _translate = QtCore.QCoreApplication.translate Dialog1.setWindowTitle(_translate("Dialog1", "Dialog")) self.pushButton.setText(_translate("Dialog1", "Jump to main")) self.pushButton.clicked.connect(self.jump_to_main) def jump_to_main(self): self.dialog.close()

三、跳转界面Demo2

# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 'Dialog2.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, QtWidgetsfrom PyQt5.QtWidgets import QMainWindow, QDialog, QApplicationimport sysclass Ui_Dialog2(object): def setupUi(self, Dialog2): Dialog2.setObjectName("Dialog2") Dialog2.resize(400, 300) self.dialog = Dialog2 self.pushButton = QtWidgets.QPushButton(Dialog2) self.pushButton.setGeometry(QtCore.QRect(140, 160, 75, 23)) self.pushButton.setObjectName("pushButton") self.retranslateUi(Dialog2) QtCore.QMetaObject.connectSlotsByName(Dialog2) def retranslateUi(self, Dialog2): _translate = QtCore.QCoreApplication.translate Dialog2.setWindowTitle(_translate("Dialog2", "Dialog")) self.pushButton.setText(_translate("Dialog2", "Jump to main")) self.pushButton.clicked.connect(self.go_main) def go_main(self): self.dialog.close()if __name__ == "__main__": app = QApplication(sys.argv) form = QtWidgets.QDialog() ui = Ui_Dialog2() ui.setupUi(form) form.show() sys.exit(app.exec_())

到此这篇关于PyQt5实现界面跳转的示例代码的文章就介绍到这了,更多相关PyQt5 界面跳转内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章