PyQt5中登录界面跳转到不同界面的使用方式

本文介绍了一个使用PyQt5创建的登录界面,根据用户角色(管理员或员工)实现不同界面跳转的需求。通过Qtdesigner设计UI布局,PyUIC转换为Python代码,然后在login.py中调用并实现角色判断,以此实现登录后的界面切换功能。
摘要由CSDN通过智能技术生成


友情连接

  1. PyQt5之环境搭建教程
  2. PyQt5中编程与界面设计分离的两种方式(UI逻辑分离)
  3. 【PyQt5】designer 页面点击按钮跳转页面

一、需求分析

我的需求是不同的角色用户登录系统跳转到不同的界面。例如,学校中学生和教师可以进入的系统是不一样的,他们执行的操作也是不同的!
本需求中是管理元和员工登录界面跳转到不同的界面进行操作!


二、具体实施

2.1 UI文件介绍

  • 主要的ui界面文件
    在这里插入图片描述

上述的xxx.py文件都是先通过xxx.ui文件通过PyUIC工具直接转换生成的!!!

  • 工程思路 ⭐
  1. 首先通过Qtdesigner对所有参与的界面设计【设计界面的布局】
  2. 对xxx.ui界面文件右击鼠标,选择External Tools中PyUIC将xxx.ui转文件换为xxx.py文件 ⭐
  3. 最后在登录界面文件中对xxx.py进行调用即可 【例如在本工程中login.py是登录文件,而admin与staff是两个不同的用户角色,他们登录系统后应该跳转到不同界面,因此需要在login.py中调用与重写】

详情:PyQt5中编程与界面设计分离的两种方式(UI逻辑分离)

  • admin.py文件
    该文件中都是对admin.ui文件中各种组件的使用情况代码记录情况,通俗的话说将ui界面控制的方式转换成代码表达出来。【用过TKinter的知道Tk中组件的位置是通过代码来调控的,不是通过鼠标拖拽来布局的!而PyQt5中组件既可以通过QTdesigner进行设计(即鼠标拖拽方式),也可以直接进行代码编写调试。而PyUIC工具则是将QTdesigner中鼠标拖拽的方式用代码生成出来表示。

  • staff.py文件
    该文件功能同admin.py文件中的功能

  • login.py文件
    该界面同admin.py文件中的功能

2.2 功能文件介绍

在2.1章节中讲解了工程中所有的ui及其对应的py文件,那有了相关py文件,功能又如何实施呢?如何实现我们所想要的效果呢?

新建logintoadmin.py文件,实现上述功能!【文件名起的不是很棒,不要以为就是实现了登录界面到管理员界面的跳转,其实是都实现了上述功能!】

  • logtoadmin.py文件⭐
    在这里插入图片描述
    logintoadmin是桥梁,连接了所有的设计的系统UI界面文件!

  • login登录界面
    在这里插入图片描述

  • 代码实现
    点击登录按钮如何跳转到不同的界面呢?通过哪个角色被选中来进行判断!

# 登录-》跳转不同界面
def jumptodiff(self):
    # print('main - mess:', mess['role'])
    if self.radioadmin.isChecked():
        self.admin = admin_Dialog()  # self.admin 才可以成功!!!⭐⭐
        self.admin.show()
        self.close()
        print("admin-admin")
    else:
        self.staff = staff_Dialog()  # self.staff 才可以成功!!!⭐⭐
        self.staff.show()
        self.close()
        print("staff-staff")

总结

最后的实现的功能相对粗糙些,但是重点是掌握如何实现登录界面到不同界面的跳转!

PyQt5 ,你可以通过创建多个窗口并在需要时切换显示它们来实现界面之间的跳转。下面是一个示例代码,演示了如何在两个窗口之间进行跳转: ```python import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QLabel class Window1(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("Window 1") # 创建按钮和标签 self.button = QPushButton("跳转到 Window 2", self) self.button.setGeometry(50, 50, 150, 30) self.label = QLabel("这是 Window 1", self) self.label.setGeometry(50, 100, 150, 30) # 按钮点击事件连接到跳转函数 self.button.clicked.connect(self.jump_to_window2) def jump_to_window2(self): self.hide() # 隐藏当前窗口 window2.show() # 显示 Window2 class Window2(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("Window 2") # 创建按钮和标签 self.button = QPushButton("跳转到 Window 1", self) self.button.setGeometry(50, 50, 150, 30) self.label = QLabel("这是 Window 2", self) self.label.setGeometry(50, 100, 150, 30) # 按钮点击事件连接到跳转函数 self.button.clicked.connect(self.jump_to_window1) def jump_to_window1(self): self.hide() # 隐藏当前窗口 window1.show() # 显示 Window1 if __name__ == "__main__": app = QApplication(sys.argv) window1 = Window1() window2 = Window2() window1.show() sys.exit(app.exec_()) ``` 这个示例代码有两个窗口,Window1 和 Window2。在 Window1 ,有一个按钮,点击按钮会跳转到 Window2。在 Window2 ,也有一个按钮,点击按钮会跳转回 Window1。通过调用 `hide()` 方法隐藏当前窗口并调用 `show()` 方法显示另一个窗口,可以实现窗口之间的跳转
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胜天半月子

打不打商的无所谓,能帮到你就好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值