当前位置:首页 > 编程 > 【编程】QT仪表盘的设计与实现,非控件

【编程】QT仪表盘的设计与实现,非控件

之前写过《QT中速度仪表盘控件QMeter的安装方法》的文章,链接如下:

http://www.datouinfo.com/?p=18

文章中提到了使用QMeter控件的方法。

在这里再介绍一种方法,直接编程实现,不使用控件。这种方式可能更加简单,但是使用起来有局限性。表盘和表针都是图片,这样就不能随意的放大和缩小表盘,速度仪表盘就限定在固定大小的环境下。

效果图如下:

QQ截图20140220205554

因此整个界面的美观程度完全取决于图片的美观程度。

核心代码如下:

QQ截图20140220205029

四个变量
range_min=0;

range_max=320;

angle_min=-117;

angle_max=121;
的意思分别为:表盘数值的最大值,最小值。0刻度的角度,最大刻度的角度。默认上端中心位置为0刻度。左边的负刻度,右侧是正刻度。

void MainWindow::on_pushButton_clicked()函数作为一个按钮的槽,测试使用,在实际的应用中,可以将这个函数作为某个待显示变量的槽。这样就可以实时的显示数据了。
METER1NEEDLE

上图为程序中使用的两张图片。重点是指针的图片。要将指针的中心位置设置为图片的中心位置,这样旋转图片的时候更加方便,即图片的中心就是表盘指针的中心。当然,指针的背景一定是透明的。想要原始的PNG格式的图片的,可以留言,并留下邮箱,我发送给你。
另外程序中还需要的参数是表盘底盘的尺寸为180*180.指针的尺寸为160*160.当然,如果两个图的尺寸相同,位置转换会更简单一点。
好了,就介绍到这里。编程水平有限,但是这种方法可以实现。

 

  • «
  • »
  • 作者:
    除非注明,本文原创:大头资讯网,欢迎转载!转载请以链接形式注明本文地址,谢谢。
    原文链接:http://www.datouinfo.com/?p=117

    【编程】QT仪表盘的设计与实现,非控件》有 6 条评论

    1. 飞翔说道:

      您好啊,能不能给我发一下你上面文章中的图片,还有源程序能不能也发来我学习学习啊???麻烦了,谢谢啦
      我的邮箱:1147031077@qq.com
      另外http://www.datouinfo.com/?p=18 这个里面您提到的方法,怎么在windows的qt中实现啊,,谢谢啦

    2. 怺逺 海子说道:

      抱歉 我要看的是非控件的方式 结果留言留错了。你好,我想要看看这部分的东西,另外我想问问哦,在旋转的过程中是否有动画效果,还是比如从0设置到最大 是渐变过去还是直接跳过去了。我的邮箱Richards@live.cn谢谢

      • 靳小都说道:

        现在是直接跳的,中间没有过度,如果需要过度的话,可以自己加上一个动画过度的效果。*一个定时器,慢慢加减就可以了。之前也写过有动画的。

    3. 匿名说道:

      你好,能把上面的图片发给我吗,我的邮箱是436083402@qq.com

    4. 匿名说道:

      你好,能把上面的图片发给我吗,我的邮箱是392928606@qq.com,谢谢靳小都