标签:
前几天受朋友之托,给他们的项目写个上位机。有些经验分享给大家
项目要求是上位机收到通过串口发送的数据,根据数据显示空车位的数量。
*最终上位机拥有的值得一谈的功能:
1.串口通信的相关设置
2.数据保存
3.界面随窗口缩放的实现
4.软件打包
5.。。。然后就没有了
开始写软件之前首先明确目的,软件应该实行什么功能,然后设计界面,最后才开始写代码。
界面设计(Visio设计,当然其他工具也可以):
整个软件只有一个窗口tabwidget,在其中嵌入三个继承自Qwidgetd的类,一个用于串口通信相关设置,一个用于显示车位数,一个是帮助页面。
之前看过其他人写的上位机,有的界面做得不是很爽,主要是界面固定,不能进行窗口缩放。
说一下如何让软件的界面能够大小根据窗口的大小缩放?
1.首先要知道,软件界面的自动缩放,可以由窗口控制。就是说设置好界面后把控制权交给QT的程序框架就行了,框架会进行调整。值得一提的是,个人感觉qt设计师不好用,当界面的控件多的时候,布局起来往往不如人意,特别是要实现窗口缩放的功能,很麻烦。推荐用代码布局,可操作性强,配置起来也简单明了。如果是小项目,界面简单,那就无所谓了。
2.把所有的布局最终嵌入到一个布局里面,然后设置这个布局为窗口的布局,剩下的缩放就交给qt控件了。
qt5提供了串口类,所以我们只需要调用修改函数进行配置就能够实现通信了。qt5的示例程序里面有查看程序,输入“serial”就可以检索出来。
对串口的操作类似文件操作。过程就是:打开串口—>使用串口—>关闭串口。完整的过程:检索串口—>打开串口—>配置波特率、停止位等等—>对串口读写—>不使用时关闭。
代码有些是有注释,有些是没有注释的,还有一些是自注释(通过函数名称就知道是干啥的)。
1.要想使用串口类需要在工程文件添加serialport
eg. QT += core gui serialport
2.为软件的使用方便性,可以设置“伙伴”(setBuddy)
3.注意控件的宽度,有时候界面缩放效果不理想,并不是布局不好,而是控件的一些属性(高度、宽度)影响了布局。
这个程序车位显示模块做得真菜,判断有无车位居然使用的是if()else()……..
他们做的下位机连个通信协议都定。我这边也是没办法,把老师忽悠过关就行了。反正不是我的项目,O(∩_∩)O~
1.思考一个问题:为什么要打包?
通俗来说,因为用户可能没有Qt SDK,可能有也不知道如何使用,所以需要打包(不同意的同志不要笑)。
2.打包工具:
3.打包原料:
qt生成的可执行文件(一般使用release版的,因为其占用空间少,使用debug对应用户来说没必要,其占用空间也大)
qt的一些dll(如果不知道你的可执行程序需要那些,就运行可执行程序根据提示去安装目录下的bin文件夹复制过来就行。eg. C:\Qt\Qt5.5.0\5.5\mingw492_32\bin)
4.打包步骤:
1.把程序用到的资源,可执行程序、相关dll放置一个文件夹里
2.打开打包工具
3.完成
标签:
原文地址:http://blog.csdn.net/w2654189525/article/details/51190204