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, QtWidgets from PyQt5.QtWidgets import QMainWindow, QApplication import Dialog1 import Dialog2 import sys class 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, QtWidgets class 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, QtWidgets from PyQt5.QtWidgets import QMainWindow, QDialog, QApplication import sys class 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 界面跳轉內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- None Found