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 {} +