QT 随着数值变化的条形显示控件

最近做了一个小项目用到qt
因为有 之前搞图像处理的时候小小的用过qt
信号槽什么的 都比较 清楚
但这回界面要求比较高,做的是上位机 从单片机那里串口得到数值之后显示,要的是自己 搞得控件之后控件随着值存在一定的变化

其实 自己也查了很多资料,之前心思用QCustomPlot,但是 太大了,小的话 效果不好还是心思自己 来画一个吧,之后就遇到了各种坑,经历了 十个小时的战斗,终于 ok了,迫不及待给大伙们 分享一下。

首先要明白一下几点
1. widget和Frame都是个容器,里面还可以放别的
2. 控件的升级
3. 控件升级之后怎么用相应的 .c 和.h
4. 之后就是相应的操作了

如下:
1. Widget 和frame都是可以从UI中拖出来的
你拖哪个 主要取决于你的控件提升基于什么 此处 用的是Frame
QT 随着数值变化的条形显示控件

QT 随着数值变化的条形显示控件

QT 随着数值变化的条形显示控件

此处注意一定要 注意自己的QFrame 自己的定义控件的名称
此处将Frame 改为pss(这个地方我吃了大亏啊,看了好久bug,但是update之后UI就是不变,都知道进了paintEvent但是UI就是不变,还以为见了鬼了,后来才发现我一直操作的变量不是UI中的一直都是自己 定义的一个,所以就算是UI 重新画图了,但是 你没有把他放到UI中,而UI的变量是另一个,所以可以说的上是一直我都是把两个变量当成一个。。。很尴尬,此处听不懂看完下面的就懂了)
2. 提升
首先把.c .h 放到工程中去,上面的图里的已经是Frame 提升过得了 正常来讲应该右击 控件里面有提升为点开提升即可,把.c 和.h 的名称写上去此处不讲了参考
http://www.cnblogs.com/blfshiye/p/5179672.html

现在相当于准备工作做完了 就是提升好了也可以用UI的那个控件了

3.QT 随着数值变化的条形显示控件
基本上就上面两个代码在mainwindow.cpp中
其他的在 .c .h中改的 自己添加函数和修改都可以
要注意的是 ui->pss->repaint(); 函数一定要引用,要不没啥用了,这个函数和update()函数差不多用哪个效果差不多,但网上说有差别,但我的这个控件差别不大
还有就是这个 控件的 UI更新最好用在一个SLOT中
QT 随着数值变化的条形显示控件
QT 随着数值变化的条形显示控件
QT 随着数值变化的条形显示控件
QT 随着数值变化的条形显示控件

效果图

QT 随着数值变化的条形显示控件

注释都有大家自己看咯。

以下这个是我自己随便写的一个比较简单的能看出刷新效果的程序

http://download.****.net/detail/qq_33431368/9834615