_PyQt5数据库开发2 5.1 QSqlQueryModel

2023-11-28 02:23:05 浏览数 (1)

一、Qt窗体设计

1. 新建Qt项目

MainWindow的windowTitle属性设为bkj5-1

2. 拷贝4-3的部分组件过来

把GroupBoxLeft和GroupBoxRight拷贝过来,然后删去GroupBoxLeft里面的其他组件,只保留一个tableview

3. 添加资源文件

4. 创建Action

如图创建Action

将其中的actRecFirst、actRecPrevious、actRecNext、actRecLast的enabled属性去掉

5. 添加工具栏

6. 创建菜单项

7. 关闭Action的实现

点击工具栏上的Edit Signals/Slots按钮

8. 调整布局

8.1 调整两个groupbox的布局

当前groupBoxLeft和groupBoxRight直接挂在centralwidget下

为两个groupbox添加Qsplitter布局管理器 

调整后,两个groupBox和centralwidget之间出现了一层splitter 

8.3 为窗体设置全局布局

点击窗体空白处,选中窗体

选择水平布局或垂直布局,并适当调整大小。显示如下 

二、代码拷贝和删除

1. 新建项目目录

新建e:baikejiabkj5-1目录

2. 编译窗体文件和资源文件

拷贝项目4-3里面的compile.bat到项目目录中,运行。

3. Eric6项目

4. 拷贝文件

拷贝bkj4-3里面的appMain.py和myMainWindow.py到当前目录

5. 删代码

(1)保留两个函数

__init__ on_actOpenDB_triggered

(2)保留测试代码

if  __name__ == "__main__"部分

(3)保留函数定义,代码全部去掉,换成一个pass

__openTable

6. 现有代码

删完之后,myMainWindow.py里面的代码应该是这样的

7. 运行文件

能正常出界面

三、代码修改

1. 添加import模块

添加红色框中的那些模块

2. tableView显示

将OpenTable函数改为

3. 测试tableView显示

4. 右边的groupBox里面内容的显示

添加红色框中代码

5. 测试groupBox显示

但是在tableView里面换行的时候右边框里面内容是不变的

6. tableView换行,相应的groupBox内容改变

建立自定义槽函数do_currentRowChanged

在openTable函数中设置信号与槽的关联 

7. 测试tableView换行

8. 记录的移动

添加五个函数

9. 测试记录的移动

发现不能用,这四个按钮不能按

10. 修改do_currentRowChanged的代码

11. 在openTable函数中补充代码

12. 测试程序

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

0 人点赞