前言:想写一个应用好久了,独立开发大概是每个程序员的梦想。自从之前写了一个数据挖掘的小模型,一直想封装一下,故而上路,所以此系列算不上教程,只是记录分享这个过程的坑点和经验,力求有头有尾,网上抄来抄去的教程真的看的头疼,己所不欲勿施于人,在封装完毕之后我会将完整的代码贴出来与大家分享。
教程合集地址:https://blog.csdn.net/infent/column/info/30927
这一节主要实现了数据库交互模式,设计到两个比较耗时的操作,一个是query查询,一个是表单内容循环填充,每次进行这两个内容的时候,ui界面都会阻塞,从而显示未响应。因此需要使用QThread来将这两部分的逻辑分离出来。
接下来是分析线程中的业务逻辑该怎么写了,之前我把界面展示也放在线程里结果一直不展示界面,后来把计算结果返回给展示界面,这块还要搞清楚。
最终实现的效果如上,如果再友好一点,可以再设置进度条,这个在后面的会实现。
其次我仍然是使用QTableWeight进行的展示,但是Qt有一个QSqlTableModel可以更便捷的展示和操作界面,结合表指定和多线程应该能更方便一些。
在PyQt5快速开发实践中的9.24小节有一个展示的例子,如果要迭代开发的话,我的可视化操作可能考虑想这个例子靠拢,废除手动sql填写,因为这样不够健壮,一旦sql写错了就有可能导致程序退出,这一点通过使用try,except,finally语句包裹处理流程可以处理,对于错误的sql语句,我们在后台输出错误并释放执行按钮。