简介: 仪表盘QSlider和数值显示QLCD_NUmber的讲解和使用。

[TOC]


本文初发于 “偕臧的小站“,同步转载于此。


编程环境: win10 x64 专业版 1803

编程软件: visual studio 2015Qt Creator 4.8.2 (Enterprise)Qt 5.9.8


运行效果:

先上一个最终的运行效果图:


系列博文:

比较紧密的关联博文参考:


继承关系:

QSlider移动条、QScrollBar滚动条、进度条这三个控件,都是继承于QAbstractSlider类,其中关于QSlider和QAbstractSlider属性讲解,参考已经发过的文章https://blog.csdn.net/qq_33154343/article/details/100944831 ;关于这几个控件的继承关系如下图:


QDial属性:

  • QDial是仪表盘式的组件,通过旋转表盘获得输入值。QDial的特有的属性包括以下两种。
属性 含义
notchesVisible 表盘的小刻度是否可见
notchTarget 表盘刻度间的间隔像素值

QLCDNumber属性:

  • QLCDNumber是模拟LCD显示数字的组件,可以显示整数或小数,但就如实际的LCD一样,要设定显示数字的个数。显示整数时,还可以选择以不同进制来显示,如十进制、二进制、十六进制。其主要属性如下。
属性 含义
digitCount 显示的数的位数,如果是小数,小数点也算一个数位
smallDecimalPoint 是否有小数点,如果有小数点,就可以显示小数
mode 数的显示进制,通过调用函数setDecMode)、setBinMode()、setOctMode)、setHexMode()可以设置为常用的十进制、二进制、八进制、十六进制格式。
value 返回显示值,浮点数。若设置为显示整数,会自动四舍五入后得到整数,设置为intValue的值。如果smallDecimalPoint=true,设置value时可以显示小数,但是数的位数不能超过digitCount。
intValue 返回显示的整数值

例如,若smallDecimalPoint-true,digitCount=3,设置value=2.36,则界面上LCDNumber组件会显示为2.4;若设置value=1456.25,则界面上LCDNumber组件只会显示145。所以,用QLCDNumber作为显示组件时,应注意这些属性的配合。


核心源码:

//notchesVisible:表盘的小刻度是否可见
//notchTarget:表盘刻度间间隔的像素值
connect(ui->dial, SIGNAL(valueChanged(int)), this, SLOT(onDisplayLCD(int)));
setWindowTitle(QObject::tr("QDial表盘输入,在LCD以多种进制显示"));

-------------------------------------------------------------------------------------
    
ui->lcdNumber->display(val);    //显示LCD
ui->lcdNumber->setBinMode();    //设置LCD显示二进制数
ui->lcdNumber->setOctMode();    //设置LCD显示八进制数
ui->lcdNumber->setDecMode();    //设置LCD显示十进制数
ui->lcdNumber->setHexMode();    //设置LCD显示十六进制数

源码下载:

https://github.com/xmuli/QtExamples 【QtQdialQLCDEx】


开心分享:

因为有着许许多多的热心网友的无私分享,从他们的博客中学习成长,学会很多,故也不辞辛苦也将自己的项目或经验整理成博客的形式,也提供给一起大家学习探讨与交流