PyQt5数据库开发1 4.3 QSqlTableModel 之 Qt项目的创建

news2024/9/23 13:17:09

目录

一、新建Qt项目

1. 编辑资源文件

2. 添加前缀

3. 新建放资源文件的目录

4. 添加图标文件

二、Action

1. 新建打开数据库Action

2. 添加其他Action

三、工具栏

1. 添加工具栏

2. 拖动actOpenDB到工具栏

3. 设置工具栏属性

4. 添加分隔符

5. 添加其他工具

6. 工具栏层次结构 

四、菜单

1. 添加文件分组

2. 添加其他文件分组下菜单项 

3. 添加其他分组和菜单项

4. 菜单层次结构 

五、关闭Action的实现

六、修改Action的状态

七、添加组件和布局

1. 最外左右两个GroupBox的布局

2. frame的布局

3. 排序groupbox的布局 

4. 数据过滤groupbox的布局 

5. 右侧groupbox的布局

6. 分裂器QSplitter

7. 总的层次结构

八、添加下拉框选项

1. 性别下拉框

2. 省份下拉框 

3. 部门下拉框 

九、编译窗体文件和资源文件

1. 建立批处理文件

2. 双击运行批处理文件

十、新建Eric6项目

1. 新建项目

2. 新建myMainWindow.py

3. 运行myMainWindow.py

4. 新建appMain.py 

5. 运行appMain.py

后续


一、新建Qt项目

Tips1   建好项目后,组件结构如图 

MainWindow的windowTitle属性设为bkj4-3 

1. 编辑资源文件

在文件res.qrc上点击右键,选择Open In Editor

 

2. 添加前缀

添加前缀icons

 

3. 新建放资源文件的目录

原QtApp目录文件如下

 

在这个目录下新建images文件夹 

将所有图标文件放到images文件夹里面 

4. 添加图标文件

二、Action

1. 新建打开数据库Action

打开Action Editor,点击新建按钮

2. 添加其他Action

类似的添加Action,最终结果如图所示

 

保存,退出Action编辑器 

三、工具栏

1. 添加工具栏

窗体空白处点右键,选择添加工具栏,命名为mainToolBar

2. 拖动actOpenDB到工具栏

 拖完后,工具栏出现图标

只有图标,没有文字,不好看 

3. 设置工具栏属性

修改工具栏的toolButtonStyle属性,改为ToolButtonTextUnderIcon

改了以后,工具栏变了样 

4. 添加分隔符

右键点击工具栏,选择添加分隔符

 

5. 添加其他工具

Tips2  最终效果如图 

6. 工具栏层次结构 

四、菜单

1. 添加文件分组

双击,输入”文件(&F)” 

完成这个Action的添加 

2. 添加其他文件分组下菜单项 

3. 添加其他分组和菜单项

4. 菜单层次结构 

五、关闭Action的实现

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

点击底部的Signals Slots Editor,点上面的+号 

出现 

发送者选actQuit这个Action,信号选择triggered(),接收者选择MainWindow,槽选择close() 

点击上方的×保存 

六、修改Action的状态

除了actOpenDB和actQuit之外,把其他的action全部改为不是enabled的

修改前

修改后 

修改完之后,工具栏变成这样 

  

菜单项变成这样 

七、添加组件和布局

Tips3  如图添加组件,实现类似下图输出

1. 最外左右两个GroupBox的布局

左右两个GroupBox

左边的GroupBox,上面放一个frame,下面放一个table view

就像下图的层次结构一样

 

2. frame的布局

frame由三个部分组成,一个排序GroupBox,一个数据过滤GroupBox,还有一个水平Spacer

层次结构类似如下

 

构造如下 

3. 排序groupbox的布局 

 

4. 数据过滤groupbox的布局 

5. 右侧groupbox的布局

注意

(1)dbSpinEmpNo的minimum属性为0,maximum属性为10000

(2)dbSpinSalary的minimum属性为0,maximum属性为50000,singleStep为100

(3)其中的dbEditBirth的InputMask为9999-99-99

 

 

 

6. 分裂器QSplitter

当前总体的层次结构如下

 

按住ctrl键,选中groupboxleft和groupboxright,右键->布局->使用分裂器水平布局 

可以看到层次结构变了,在cenralwidget和两个groupbox之间加多了一层splitter 

窗体变为如下 

7. 总的层次结构

其中groupboxleft部分的层次结构 

groupboxright部分的层次结构 

八、添加下拉框选项

1. 性别下拉框

双击性别下拉框

 

点加号填入选项 

结果如图 

2. 省份下拉框 

3. 部门下拉框 

九、编译窗体文件和资源文件

1. 建立批处理文件

在e:\baikejia\bkj4-3目录下创建一个compile.bat文件,输入以下内容 

2. 双击运行批处理文件

编译完成,拷贝完成,新生成了三个文件 

 

十、新建Eric6项目

1. 新建项目

 

2. 新建myMainWindow.py

内容如下

 

3. 运行myMainWindow.py

确保可以运行

 

4. 新建appMain.py 

 

5. 运行appMain.py

确保可以运行

后续

        🆗,这次实操比较多内容,下次更新这一篇的后续,是关于SQL Server表建立和远程连接设置和写对应的槽函数。期待小伙伴的关注!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/351348.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

精选案例 |《金融电子化》:光大银行云原生背景下的运维监控体系建设

顺应“十四五”规划中关于“加快金融机构数字化转型”要求,中国人民银行印发了《金融科技发展规划(2022-2025年)》。近几年来,金融行业牢牢占据着国内产业数字化转型市场投入的榜首位置。IDC调查显示,2022上半年&#…

北斗卫星信号类型及卫星颗数

文章目录一、北斗系统现阶段提供的公开服务信号二、北斗二号、三号卫星个数三、GNSS模块中的北斗信号参考来源这篇博客主要是整理一下北斗卫星现阶段提供的公开服务信号、二号和三号卫星个数,以及简单看看市场的GNSS模块对北斗信号的支持情况。一、北斗系统现阶段提…

智云通CRM:引起流单的三个问题,你了解了吗?

销售人员一般都会了解基本的销售流程,但是为什么还是出现了各种流单的问题?智云通CRM总结以下三个问题: 第一,采购流程是会发生反复的,不会一直向下走。 从整体上看,客户的采购流程遵循着上述规律&#x…

C++ 修改防火墙firewall设置(Windows)

文章目录1、简介1.1 防火墙概述1.2 入站,还是出站?1.3 防火墙规则优先级2、系统界面方式3、命令行方式3.1 防火墙基本状态设置3.2 入站出站规则设置3.3 其他设置3.4 telnet检测端口4、C方式4.1 注册表4.2 COM(Windows XP)4.3 COM&…

深度学习模型概念

Big data features: 5V--volume, velocity, variety, value, veracity.Big data challenges:高维、multi-modal、complexity、privacy 1. Federated Learning 联邦学习 Federated Learning:Server将model分散到各个用户user,clients利用本地…

不同相机之间图片像素对应关系求解(单应性矩阵求解)

一、场景 相机1和相机2相对位置不变,相机拍摄图片有重叠,求他们交叠部分的一一对应关系。数学语言描述为已知相机1图片中P点像素(u1, v1),相机1中P点在相机2图片中像素值为(u2, v2),它们存在某种变换,求变换矩阵。 因为…

计算机存储数字的本质,正码,反码,补码

计算机-原码 就是二进制定点表示法,即最高位为符号位:“0”表示正,“1”表示负,其余位表示数值的大小。 该数字不进行其他操作时数字最原始的二进制表示, 对于原码来说,绝对值相等的正数和负数只有符号位不…

高通平台开发系列讲解(USB篇)libuvc详解

文章目录 一、什么是UVC二、UVC拓扑结构三、libuvc的预览时序图沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇文章将介绍libuvc。 一、什么是UVC UVC,全称为:USB video(device) class。 UVC是微软与另外几家设备厂商联合推出的为USB视频捕获设备定义的协议标…

缓存雪崩 缓存击穿-总结

目录 缓存雪崩 缓存击穿-总结 缓存雪崩 出现场景: 解决方案: 缓存击穿 出现场景: 举例如图: 缓存击穿的三个前提: 解决方案: 缓存雪崩 缓存击穿-总结 缓存雪崩 出现场景: (1) 对于R…

用于隔离PWM的光耦合器选择和使用

光耦合器(或光隔离器)是一种将电路电隔离的器件,不仅在隔离方面非常出色,而且允许您连接到具有不同接地层或在不同电压电平下工作的电路。光耦合器具有“故障安全”功能,因为如果受到高于最大额定值的电压,…

3.1 OSPF引入路由

实验目的掌握OSPF引入静态路由的办法掌握OSPF引入直连路由的办法实验拓扑OSPF引入路由实验拓扑如图3-1所示: 图3-1:OSPF引入路由 实验步骤配置IP地址R1的配置 <Huawei>system-view [Huawei]undo info-center enabl

软件测试面试题中的sql题目你会做吗?

目录 1.学生表 2.一道SQL语句面试题&#xff0c;关于group by表内容&#xff1a; 3.表中有A B C三列,用SQL语句实现&#xff1a;当A列大于B列时选择A列否则选择B列&#xff0c;当B列大于C列时选择B列否则选择C列 4. 5.姓名&#xff1a;name 课程&#xff1a;subject 分数&…

node-sass按照失败

一、描述 从网上下载的一个Vue模板项目&#xff0c;导入VsCode&#xff0c;执行npm install命令后&#xff0c;报错了&#xff0c;报错的信息是node-sass安装失败&#xff0c;同时提示需要python环境的错误信息&#xff0c;这是因为安装node-sass失败了&#xff0c;而node-sas…

开源实时监控系统 HertzBeat 对 Linux 操作系统的监控告警实践

使用开源实时监控系统 HertzBeat 对 Linux 操作系统的监控告警实践&#xff0c;5分钟搞定&#xff01; HertzBeat 介绍 HertzBeat 是一款开源&#xff0c;易用友好的实时监控系统&#xff0c;无需Agent&#xff0c;拥有强大自定义监控能力。 集监控-告警-通知为一体&#xff0…

Spring入门案例三:注解进行引用类型的自动装配

本系列文章将会带领大家进行Spring的全面学习&#xff0c;持续关注我&#xff0c;不断更新中… 一.案例分级 简单解析:配置类替代以前的配置文件&#xff0c;实体类提供对象&#xff0c;业务类中有实体类的引用对象&#xff0c;在业务层中实现引用类的自动装配。 二.各层代码…

Java基础 -- 泛型

Java基础 -- 泛型1. Introduction1.1 好处1.2 常用泛型2. User Guide2.1 泛型类2.2 泛型方法2.3 泛型接口3. 限定泛型范围4. Awakening1. Introduction 1.1 好处 代码复用&#xff0c;多种数据类型执行相同的代码在编译期间可以检查类型是否安全&#xff0c;报警ClassCastExce…

什么是webpack

目录 1、什么是webpack&#xff08;必会&#xff09; 2、Webpack的优点是什么&#xff1f;&#xff08;必会&#xff09; 3、webpack的构建流程是什么?从读取配置到输出文件这个过程尽量说全&#xff08;必会&#xff09; 4、说一下 Webpack 的热更新原理(必会) 5、webpa…

为什么说接口幂等性很重要

先讲个故事大概三年前&#xff0c;外卖平台 Uber Eats 在印度发生了一次重大事故&#xff0c;使得用户可以免费获得食品。一天早上&#xff0c;有人试图通过印度的 Uber Eats 订购食物&#xff0c;并使用印度的支付平台 Paytm 付款。但是&#xff0c;他的账户里面没有足够的余额…

蓝牙耳机哪款性价比高音质好?2023公认音质最好的蓝牙耳机

如今音乐成了当下解压的方式之一&#xff0c;甚至是集中注意力的法器。耳机作为传播音乐的媒介&#xff0c;每个人对自己的专属耳机总有那么点小追求&#xff0c;高质量的耳机不仅保护双耳&#xff0c;带来的音质能让你的耳朵分分钟怀孕&#xff0c;下面分享几款2023年音质高的…

Cain执行中间人攻击

实验目的&#xff1a;通过构建虚拟场景&#xff0c;了解中间人攻击和钓鱼网站攻击的执行流程&#xff0c;熟练使用Cain & Abel工具实现攻击&#xff0c;并掌握识别和防御此类攻击的技术原理和方法。 一、场景简介 甄某为犯罪嫌疑人&#xff0c;警察想获得甄某在其单位网站…