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

摘要:
首先,让我们从一个简单的在线市场新产品仓储案例来看一下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开发及实例(陆文周),现在完成了入库这一模块,后续预售模块/账号加密登录模块待完成
Modle/View/Delegate框架+QSqlQuery类实现QT和MYSQL交互第1张

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

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

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

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交互》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ModelContext模型上下文OpenCV —— 轮廓下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

iOS设计模式——委托(delegate)

委托(delegate)也叫代理是iOS开发中常用的设计模式。我们借助于protocol(参考博文:objective-c协议(protocol))可以很方便的实现这种设计模式。 什么是代理? 苹果的官方文档给了很清晰的解释: Delegation is a simple and powerful pattern in which one object...

Unity3D游戏轻量级xlua热修复框架

一  这是什么东西 前阵子刚刚集成xlua到项目,目的只有一个:对线上游戏C#逻辑有Bug的地方执行修复,通过考察xlua和tolua,最终选择了xlua,很大部分原因是因为项目已经到了后期,线上版本迭代了好几次,所以引入Lua的目的不是为了开发新版本模块。xlua在我们的这种情况下很是适用,如xlua作者所说,用C#开发,用lua热更,xlua这套框架为...

C#基础精华07(委托事件,委托的使用,匿名方法)

1.委托概述 委托是一种数据类型,像类一样(可以声明委托类型变量)。方法参数可以是int、string、类类型 void M1(int n){  } √ void M2(string s){  } √ void M3(Person p){  } √ 委托就是一种数据类型,用来存放方法的数据类型。 那么委托到底把方法存到哪里了?其实委托还是一个类。把方法包装...

MyBatis 物理分页

MyBatis使用RowBounds实现的分页是逻辑分页,也就是先把数据记录全部查询出来,然在再根据offset和limit截断记录返回 为了在数据库层面上实现物理分页,又不改变原来MyBatis的函数逻辑,可以编写plugin截获MyBatis Executor的statementhandler,重写SQL来执行查询 参考资料: http://blog....

c# 异步更新UI 不阻塞

c# 异步更新UI 不阻塞  流畅 Task task = Task.Factory.StartNew(() =>{     DoLongRunningWork(); // 耗时运算}); Task UITask= task.ContinueWith(() =>     {      this.TextBlock1.Text = "Compl...

.NET Core 委托delegate (一)

1、什么是委托 当需要把方法传递给其他方法时,就需要使用委托。 我们习惯于把数据作为参数传递给方法,而有时某个方法执行的操作并不是针对数据进行的,而是要对另外一个方法进行调用。更麻烦的是,在编译时我们是不知道第二个方法是什么的,这个信息只能在运行时得到,所以需要把第二个方法作为参数传递给第一个方法。例如: 1、启动线程和任务——基类System.Threa...