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


友情连接

  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")

总结

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

  • 6
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 17
    评论
下面是一个示例代码,展示如何使用PyQt5创建一个按钮,当点击该按钮时,弹出一个新的QWidget窗口: ```python import sys from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QMessageBox class MyWindow(QWidget): def __init__(self): super().__init__() # 创建一个按钮 self.btn = QPushButton('Click me', self) self.btn.move(50, 50) self.btn.clicked.connect(self.show_message) def show_message(self): # 创建一个 QMessageBox 对话框 msg_box = QMessageBox() msg_box.setText('Hello, World!') msg_box.exec_() if __name__ == '__main__': app = QApplication(sys.argv) window = MyWindow() window.setGeometry(300, 300, 250, 150) window.setWindowTitle('PyQt5 Example') window.show() sys.exit(app.exec_()) ``` 在这个示例,我们首先创建了一个MyWindow类,它继承自QWidget。在MyWindow类的构造函数,我们创建了一个QPushButton对象,并将其移动到(50, 50)的位置。我们还连接了按钮的clicked信号到show_message()方法。 show_message()方法创建了一个QMessageBox对话框,并将其文本设置为"Hello, World!"。最后,我们调用了msg_box.exec_()来显示对话框。 在我们的main函数,我们首先创建了一个QApplication对象,然后创建了一个MyWindow对象,并将其设置为主窗口。我们还设置了窗口的大小和标题,并使用window.show()方法显示窗口。 最后,我们调用了sys.exit(app.exec_())来启动应用程序的事件循环。这将允许我们与窗口进行交互,并显示对话框,当我们点击按钮时。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

胜天半月子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值