PyQt5数据库开发1 4.3 QSqlTableModel④下部

2023-11-30 23:13:37 浏览数 (3)

建立tableview与右侧组件的关联

当前无关联

当前tableview里面选择某个行,右侧是无反应的

添加关联代码

插入

同时import若干新模块

运行程序

发现右边groupbox出现第一条数据。无论左边tableview点哪个单元格,右边的groupbox都不跟着变化

添加选择行变化的信号与槽函数

运行程序

换个地方点击

发现tableView可以选择多行

按住Ctrl键,在多条记录上选择,发现可以选多行

添加代码,限制tableView

在__init__函数中限制

运行程序,发现没法选多行了

排序

排序下拉框没内容

当前这个下拉框里面是没东西的,运行的时候点没反应

补充相关函数和调用

运行程序,发现排序下拉框有内容了

排序下拉框的信号与槽

添加槽函数

import新模块

添加红色框框内代码。注意要在前面写上@pyqtSlot(int),说明其参数为int类型

运行程序

换一种排序方式

升序和降序两个单选按钮的信号与槽函数

降序

添加槽函数

运行测试升序降序功能

数据过滤

添加槽函数

测试过滤功能

发现bug

原因是这些按钮在数据库没打开时不应该能按。排序相关功能也有类似的错误

去Qt修改

将groupBoxSort的enabled属性里面的勾去掉

同样,将groupBoxFilter的相关属性也去掉

保存,退出qt

在Eric6工程目录下运行批处理文件或者将form文件拷贝到Eric6工程目录,然后在Eric6下编译form(因为改动没有涉及资源,所以直接在eric6下编译form就行了

运行程序

现在数据库没打开时,排序和过滤相应按钮都没法按了

添加代码,让数据库打开时,排序和过滤功能能用

在opentable函数的最后加入如下代码

运行程序

打开数据库以后,排序和过滤按钮能用了

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

0 人点赞