文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2024-04-02 19:55

关注

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯