Qt实战案例(29)——利用数据库、TableView等相关知识展示汽车制造商与汽车关系(综合案例)

一、项目介绍

结合SQL数据库、XML以及TableView相关知识,展示汽车制造商与汽车的关系。当在汽车制造商表中选中某个制造商时,下面的汽车表中将显示该车的车型和制造商的详细信息,车型的相关信息存储在XML文件中。

二、项目基本配置

新建一个Qt案例,项目名称为“CarTest”,基类选择“QMainWindow”,点击选中创建UI界面复选框,完成项目创建。

三、UI界面设计

UI界面布局如下:
在这里插入图片描述
其中,汽车制造商、汽车和详细信息这三个文字部分是GroupBox创建的,其内部包含的控件如下:

序号名称类型属性
factoryViewQTableViewEditTriggers:NoEditTriggers
SortingEnabled:true
SelectionBehavior:SelectRows
SelectionMode:SingleSelection
ShowGrid:false
verticalHeader:false
AlternatingRowColors:true
carViewQTableViewEditTriggers:NoEditTriggers
SortingEnabled:true
SelectionBehavior:SelectRows
SelectionMode:SingleSelection
ShowGrid:false
verticalHeader:false
AlternatingRowColors:true
profileLabelQLabelwordwrap:true
Alignment:AlignBottom
titleLabelQLabelwordwrap:true
Alignment:AlignBottom
attribListQListWidget/
操作菜单QMenu内含三个子菜单:
添加:addAction
删除:deleteAction
退出:quitAction

四、连接数据库模块

Add New——>Qt——>Qt设计师界面类——>Dialog without Buttons。
class name设置为:ConnDlg,下一步,确定。
然后在conndlg.ui中设置界面如下:
在这里插入图片描述
界面中创建了15个控件,其名称和类型如下:

序号名称类型属性
labelQLabeltext:驱动:
label_2QLabeltext:数据库名:
label_3QLabeltext:用户名:
label_4QLabeltext:密码:
label_5QLabeltext:主机名:
label_6QLabeltext:端口
comboDriverQComboBoxcurrentText:请选择数据库驱动
databaseEditQLineEdit/
usernameEditQLineEdit/
passwordEditQLineEdit/
11HostnameEditQLineEdit/
12portspinBoxQSpinBox/
13label_7QLabeltext:状态
14okQPushButtontext:连接
15cancelQPushButtontext:退出

五、添加记录功能

Add New——>Qt——>Qt设计师界面类——>Dialog without Buttons。
class name设置为:Dialog,下一步,确定。
然后在dialog.ui中设置界面如下:
在这里插入图片描述
界面中创建了13个控件,其名称和类型如下:

序号名称类型属性
labelQLabeltext:制造商:
label_2QLabeltext:厂址:
label_3QLabeltext:品牌:
label_4QLabeltext:上市时间:
factoryEditorQLineEdit/
addressEditorQLineEdit/
carEditorQLineEdit/
yearspinBoxQSpinBoxminimum:1900;maximum:2100
label_5QLabeltext:产品属性(由分号;隔开):
attribEditorQLineEdit/
11submitQPushButtontext:提交
12revertQPushButtontext:撤销
13closeButtonQPushButtontext:退出

六、完整代码

由于代码复杂度太高,文章内容无法覆盖完全,有需要的可以自行下载:资源

【注意】:Qt文件编译成功后,将文件内的xml文件移动到生成的debug或release目录下即可完美运行。

七、效果演示

完整效果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wendy_ya

您的鼓励将是我创作的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值