2020-03-12 PYQT5界面使用QtableView展示Pandas.DataFrame

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2020-03-12 PYQT5界面使用QtableView展示Pandas.DataFrame相关的知识,希望对你有一定的参考价值。

参考技术A pandas数据可以通过设计自定义model,来实现通过QTableView展示数据,实现MVC(模型 - 视图 - 控制器)。以下是收集的两个定义方法,经验证可以直接应用:

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

总结

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

以上是关于2020-03-12 PYQT5界面使用QtableView展示Pandas.DataFrame的主要内容,如果未能解决你的问题,请参考以下文章

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

python通过PyQt5实现登录界面

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

PyQt5快速入门PyQt5布局管理

使用PyQt5为YoloV5添加界面

PyQt5快速入门PyQt5 GUI界面设计