您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:PyQt5实现界面(页面)跳转的示例代码

51自学网 2021-10-30 22:46:25
  python
这篇教程PyQt5实现界面(页面)跳转的示例代码写得很实用,希望能帮到您。

网上关于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 界面跳转内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net!


pandas DataFrame 赋值的注意事项说明(index)
python广度搜索解决八数码难题
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。