网络编程
位置:首页>> 网络编程>> Python编程>> PyQt5实现界面(页面)跳转的示例代码

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

作者:Awzh  发布时间:2023-06-21 18:48:43 

标签:PyQt5,界面跳转

网上关于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_())

来源:https://www.cnblogs.com/qdzj/p/8974660.html

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com