文章目录
友情连接一、需求分析二、具体实施2.1 UI文件介绍2.2 功能文件介绍 总结友情连接
PyQt5之环境搭建教程PyQt5中编程与界面设计分离的两种方式(UI逻辑分离)【PyQt5】designer 页面点击按钮跳转页面一、需求分析
我的需求是不同的角色用户登录系统跳转到不同的界面。例如,学校中学生和教师可以进入的系统是不一样的,他们执行的操作也是不同的!
本需求中是管理元和员工登录界面跳转到不同的界面进行操作!
二、具体实施
2.1 UI文件介绍
主要的ui界面文件工程思路 ⭐上述的xxx.py文件都是先通过xxx.ui文件通过PyUIC工具直接转换生成的!!!
首先通过Qtdesigner对所有参与的界面设计【设计界面的布局】对xxx.ui界面文件右击鼠标,选择External Tools中的PyUIC将xxx.ui转文件换为xxx.py文件 ⭐最后在登录界面文件中对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")
总结
最后的实现的功能相对粗糙些,但是重点是掌握如何实现登录界面到不同界面的跳转!