python pyqt5界面的多级跳转

文章介绍了如何使用Python的PyQt5库配合Qtdesigner设计多级界面,并通过定义类和信号机制实现不同层级的跳转,展示了登录界面、主界面和三级界面的交互过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python PTQT5 实现界面窗口两级跳转



前言

提示:这里可以添加本文要记录的大概内容:

使用python的pyqt5和Qtdesigner 实现GUI 的设计。


一、Qtdesigner 设计各个跳转界面

使用Qtdesigner 完成一级界面、二级界面和三级界面的设计,并通过External Tools/pyuic将ui文件转化为.py文件,
这里有一级界面(login.py)、二级界面 (mainview.py)和三级界面(model1_Ui.py)

二、python实现界面跳转

1.引入模块文件

代码如下(示例):

from login import Ui_MainWindow as login_Ui      #(一级界面)
from mainview import Ui_MainWindow as main_Ui    #(二级界面)
from model1v2 import Ui_MainWindow as model1_Ui  #(三级界面)
# 画图时汉字的呈现
matplotlib.use("Qt5Agg")  # 声明使用QT5
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

2.定义类 实现不同层级的跳转

代码如下(示例):

#登录窗口程序
class LoginWindow(QtWidgets.QMainWindow, login_Ui):  #定义一级界面
    switch_window0 = QtCore.pyqtSignal()  # 跳转到二级界面的信号
    def __init__(self):
        super(LoginWindow, self).__init__()
        self.setupUi(self)
        # 跳转到每个模块的命令按钮
        self.pushButton.clicked.connect(self.gomdl0) #一级界面的登录按钮
        self.pushButton.clicked.connect(self.close)	 #点击登录按钮则退出初始界面
        self.pushButton_2.clicked.connect(self.close)#一级界面的退出按钮
    def gomdl0(self):
        self.switch_window0.emit() 
#主窗口程序
class HmainWindow(QtWidgets.QMainWindow, main_Ui): #定义二级界面
    switch_window1 = QtCore.pyqtSignal()  # 跳转到三级界面的信号
    def __init__(self):
        super(HmainWindow, self).__init__()
        self.setupUi(self)
        self.label_2=QtWidgets.QLabel()
        self.label_2.setText('版权所有: xxx')
        self.statusBar.addWidget(self.label_2) #状态栏添加版权所有等标注
        #跳转到每个模块的命令按钮
        self.mdl1Button.clicked.connect(self.gomdl1)  #二级界面的跳转按钮
    # 接收跳转到每个模块的命令按钮
    def gomdl1(self):
        self.switch_window1.emit()

# 利用一个控制器0来控制登录界面和主界面跳转
class Controller0:
    def __init__(self):
        pass
    #登录窗口
    def show_HMain0(self):
        self.Login=LoginWindow()
        self.Login.showMaximized()
        self.Login.switch_window0.connect(self.show_mdl0)
        self.Login.show()
    # 登录窗口(一级)跳转到主窗口(二级)
    def show_mdl0(self):
        self.mdl0 = Controller()
        self.mdl0.show_HMain()
# 利用一个控制器来控制主界面和三级界面跳转
class Controller:
    def __init__(self):
        pass
    # 主窗口
    def show_HMain(self):
        self.HMain = HmainWindow()
        self.HMain.showMaximized()
        self.HMain.switch_window1.connect(self.show_mdl1)
        self.HMain.show()
    # 跳转到mode11窗口, 注意关闭原页面
    def show_mdl1(self):
        self.mdl1 = Model1Window()
        self.mdl1.showMaximized() #设置每个界面的默认最大化
        self.mdl1.pushButton.clicked.connect(self.mdl1.close)
        self.mdl1.pushButton.clicked.connect(self.show_HMain)
        self.HMain.close()
        self.mdl1.show()
    
if __name__ == '__main__':
    QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)
    app = QtWidgets.QApplication(sys.argv)
    controller = Controller0()  # 登录界面
    controller.show_HMain0()    # 默认展示的是登录页面
    sys.exit(app.exec_())

该处使用的url网络请求的数据。


三、python实现GUI

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值