Modle/View/Delegate框架+QSqlQuery类实现QT和MYSQL交互

Posted 七星望

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Modle/View/Delegate框架+QSqlQuery类实现QT和MYSQL交互相关的知识,希望对你有一定的参考价值。

2020的春节,武汉的疫情让我安心在家学QT,很喜欢https://www.devbean.net/category/qt-study-road-2/文章,深入浅出,很接地气。虽然也存在一些问题,但觉得值得初学者一读。

QT库一个很庞大的系统,由于时间和精力有限,不能系统的分门别类的总结相关知识点,概念及常规应用,这里先留下一些粗浅认识,做一个结点吧,后续结合具体案例来完善补充。

前前后后,看了不少例子,由几个应用主题为切入点,简单罗列下,具体操作可以查书。

1.模型视图框架( Modle/View/Delegate)方式 或者使用QSqlQuery类操作数据库,MVC方式适合于和界面交互操作,后者适合单纯或者稍复杂的数据库操作。

2.QEvent事件循环、分发、过滤机制,和信号/槽的应用。

3.QThread完成多线程的调度,还有辅助线程同步/交互的类QMutex

 

以后能争取做一下小应用

1.QNetwork网络应用,or可以灵活操作设备IO的读写如运用Qbuffer做一些采集数据的传递

2.做一些工控现场辅助工具,采集数据,画出变化折线图和数据TRACE图等。

3.结合openCV库,和QPixmap,QImage做一些图像处理,识别的应用

4.做QtCreator插件完善IDE应用。

 

这里先从一个简单 online eMarket 新品入库案例来看下QT(QtCreator4.4.1+QT5.9.3+GCC 5.4.1+UBUNTU64bit)下界面和mysql的交互应用。

参考了QT5开发及实例(陆文周),现在完成了入库这一模块,后续预售模块/账号加密登录模块待完成

1.首先在mysql workbench新建数据库并新建表格commodity ,category  ... 视图commodity_inf, 记得这两个表主键需要自增,非空

2.连接数据库

 

3.实现槽函数,在槽函数中实现从界面搜集信息通过QSqlQuery.EXEC执行SQL语句将数据插入表格。或者将表格视图关联到SQLTableModule, 将查询结果显示在QTableView中

 

4.模拟下单事务过程,并通过QListWidgetItem添加入QListWidget

 

工程代码:https://gitee.com/xianting77/eMarket.git ,欢迎大家意见指正。

 

ps:编译遇到一个问题:一直循环报错:file“xxxxx”has modification times xxxxx s in the future..

这是因为一个项目从一个电脑拷贝的到另一个电脑上时,两个电脑的时钟不一致所致,修改一下项目所在目录的修改时间即可:

 find /your/dir -type f -exec touch {} +

 

以上是关于Modle/View/Delegate框架+QSqlQuery类实现QT和MYSQL交互的主要内容,如果未能解决你的问题,请参考以下文章

消息队列管理参考资料

42.QT-QSqlQuery类操作SQLite数据库(创建查询删除修改)详解

web-8. 多框架页面的创建

框架探索如何学习框架

框架探索如何学习框架

框架探索如何学习框架