比较qt编写串口调试助手手、WinAPI 函数、高级控件编写智能设备有什么区别

以前的文章有提到封装成自定义控件以dll方式使用的弊端。今天介绍如何以提升元件的方式实现


放入要用控件的工程中。
这时VS中的QT中类似
UI界面添加一个widget元件右键提升

}

因为项目需要要在上位机界面實时显示室内温度,上位机采用QT5.5编写采用DS18B20采集数据,显示在控件lcdNumber上DS18B20是一个比较常用的温度传感器,采用单总线控制在linux中,一切都是攵件所以数据采集也是文件的读取。

重启树莓派使设置生效运行lsmod命令,如果发现红色方框的两个模块说明模块已启动
如果没有发现,也可以运行如下命令加载模块

如果没有问题在/sys/bus/w1/devices中发现一个28-XXXX开头的文件夹,这个就是DS18B20的ROM,每个DS18B20都一样连接多个18B20就会有多个这样的文件,茬这个文件夹中再读取w1_slave文件则会返回当前温度值

这里我们先进去打印一下,看看有哪些数值:


在返回数据中第一行最后的YRS表示CRC校验成功,数据有效第二行最后t=30500表示当前温度为30.5摄氏度。
按照此逻辑只要反复读取这个文件中的t值即可显示温度。

在QT中ui界面拖选一个lcdNumber然后使用定时器定时去读取数值,显示在这个控件上即可;参照一个大佬的程序:在实际使用中有一点问题,一是显示在lcdNumber上必须是个字符串,而我想要的是带小数点的温度值二是涉及到一些数值类型装换,如读到的值是30500实际要显示为30.5。三是树莓派直接接DS18B20是找不到上面所說的文件的必须要在DS18B20的VCC和数据引脚之间接一个4.7K的上拉电阻才可以。


 //得到所有的文件列表
 //遍历所有文件找到关于ds18b20的文件
 //根据存储的文件找到需要的数据
}

最近在做一个大屏UI程序需要直接在表格中展示多态进度条,也可以叫百分比进度条就是一个进度条中包含了多种状态进度,用QProgressBar肯定是满足不了需求的只能用上核武器:自定义控件,所谓心中有坐标万物皆painter,犹如神笔马良想怎么绘制就怎么绘制。
QTableWidget使用setCellWidget设置控件默认是塞满填充的如果强制设置了控件的尺寸,则默认左上角开始放置有时候这种情况很难看,需要居中显示QTableWidget可以设置文本居中显示,但是不能设置控件居中显示怎麼办呢,得上另外一个核武器:布局思路就是new一个widget,new一个布局将控件加入到布局,设置widget的布局然后将widget作为控件setCellWidget进去即可,就这样两個核武器下去立马见效,想怎么玩都可以

//增加widget+布局巧妙实现居中
}

我要回帖

更多关于 qt编写串口调试助手 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信