当前位置: 首页 > news >正文

PyQt5数据库开发2 5.1 QSqlQueryModel

目录

一、Qt窗体设计

1. 新建Qt项目

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

3. 添加资源文件 

4. 创建Action

5. 添加工具栏

6. 创建菜单项 

7. 关闭Action的实现

8. 调整布局

8.1 调整两个groupbox的布局

8.3 为窗体设置全局布局

二、代码拷贝和删除

1. 新建项目目录

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

3. Eric6项目

4. 拷贝文件

5. 删代码

6. 现有代码

7. 运行文件

三、代码修改

1. 添加import模块

2. tableView显示

3. 测试tableView显示 

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

5. 测试groupBox显示 

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

7. 测试tableView换行 

8. 记录的移动

9. 测试记录的移动

10. 修改do_currentRowChanged的代码 

11. 在openTable函数中补充代码 

12. 测试程序 


一、Qt窗体设计

1. 新建Qt项目

MainWindow的windowTitle属性设为bkj5-1

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

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

3. 添加资源文件 

 

4. 创建Action

如图创建Action

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

5. 添加工具栏

6. 创建菜单项 

 

7. 关闭Action的实现

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

 

8. 调整布局

8.1 调整两个groupbox的布局

当前groupBoxLeft和groupBoxRight直接挂在centralwidget下

 

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

 

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

8.3 为窗体设置全局布局

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

 

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

二、代码拷贝和删除

1. 新建项目目录

新建e:\baikejia\bkj5-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. 测试程序 

http://www.lryc.cn/news/17125.html

相关文章:

  • MySQL-redo log和undo log
  • 阿里云ECS TOP性能提升超20%!KeenTune助力倚天+Alinux3达成开机即用的全栈性能调优 | 龙蜥技术
  • 华为OD机试真题Python实现【快递业务站】真题+解题思路+代码(20222023)
  • 【c语言】预处理
  • 嵌入式常用知识
  • 和平精英五曜赐福返场,老款玛莎返场来了
  • React从入门到精通二
  • 【likeshop多商户】电子面单商家直播上线啦~
  • 游戏化销售管理是什么?使用CRM系统进行有什么用?
  • Mysql 索引(三)—— 不同索引的创建方式(主键索引、普通索引、唯一键索引)
  • 秒懂算法 | 基于朴素贝叶斯算法的垃圾信息的识别
  • SpringCloud - Feign远程调用
  • Eotalk Vol.03:结合 API DaaS,让使用数据更方便
  • 从零开始学习Java编程:一份详细指南
  • 电子技术——系统性分析反馈电压放大器
  • 【C语言进阶】结构体、位段、枚举、以及联合(共用体)的相关原理与使用
  • 《蓝桥杯每日一题》哈希·AcWing 2058. 笨拙的手指
  • Linux 定时任务调度(crontab)
  • C进阶:6.C语言文件操作
  • Linux环境变量
  • Kotlin-委托、代理和单例对象
  • 华为OD机试真题Python实现【报数】真题+解题思路+代码(20222023)
  • MacOS:Error message “error:0308010C:digital envelope routines::unsupported“
  • Java 异常处理,超详细整理,适合新手入门
  • 23年了,GOPATH和go.mod 还在冲突!
  • Could not connect to Redis at 127.0.0.1:6379: 由于目标计算机积极拒绝,无法连接。(极简解决办法)
  • 华为OD机试 - 优雅数组(Python)【2023-Q1 新题】
  • 【概念辨析】数组指针指针数组
  • python实战应用讲解-【语法基础篇】字典的创建及建模(附示例代码)
  • 华为OD机试真题Python实现【分糖果】真题+解题思路+代码(20222023)