一、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腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!