给手上这个即将完工的项目做个配置软件(下位机都全包了,上位机也自己写了,也方便测试和出厂配置)。玩QT最主要的就是信号和槽了,即使是多线程也是QT封装过的。写了几个软件后,积累了不少自己做的功能库,以后PC端的开发就很方便了
打开界面:
菜单界面:
配置界面:
配置1主界面:
配置2主界面:
简单说下线程方面的设计:
首先单独开了一个线程给串口扫描,从UI初始化那一个线程就一直进行串口的扫描工作。若有某时刻串口列表与旧时不同。则发送新的串口列表信号到主线程,主线程操作UI更新串口列表
再来就是TextEdit控件负责显示下位机发来的数据,这里也单独开了一个线程专门进行串口数据的读取。当取到数据后,利用信号发送将数据发送给主线程,主线程操作UI将新数据更新到Text Edit控件上
之后是串口的写入方面,也开了一个线程。这个线程只负责串口的写入。主线程从UI中取到用户输入的数据后,利用信号将数据发送给负责串口写入的线程,由它来发送数据到下位机
总结一下这个应用一共就开了3个分线程,分别负责串口的扫描,串口的读取以及串口的写入这三个方面。而主线程主要负责的就是UI操作,以及利用槽对用户操作做出相关响应
补充:测试中发现点击“确认配置”时,若需要配置的参数过多(也就是发送了多次信号),会导致UI出现卡顿(说明PyQT的emit还是比较占时间的),体验感下降。又不打算修改下位机的代码。打算后期在点击“确认配置”时,在单独开一个线程,跑这些较多的emit,等emit发送完,该线程自动结束
代码已上传GitHub需要的请自行下载~~
https://github.com/avalonLZ/PyQt_Bridge