Qt常用控件之数字显示控件QLCDNumber
数字显示控件QLCDNumber
QLCDNumber 是一个专门用来显示数字的控件。
1. QLCDNumber属性
| 属性 | 说明 |
|---|---|
| intValue | QLCDNumber 的值(int)。 |
| value | QLCDNumber 的值(double)。 |
| digiCount | 显示几位数字。 |
| mode | 数字显示形式。QLCDNumber::Dec 为十进制; QLCDNumber::Hex 为十六进制;QLCDNumber::Bin 为二进制; QLCDNumber::Oct 为八进制。(注意,只有十进制能显示小数点)。 |
| segmentStyle | 设置显示风格。 QLCDNumber::Flat 平面风格;QLCDNumber::Outline 轮廓风格;QLCDNumber::Filled 填充风格。 |
| smallDecimalPoint | 设置更小的小数点显示。 |
注意设置
intValue和value的接口是display(),不是setIntValue()和setValue()。
intValue和value的值是联动的,将value设置为1.5,intValue就会变成2。
2. 使用QLCDNumber制作定时器
Qt 中有一个 QTimer 类型的变量,QTimer 中有一个 start(n) 接口,会在每n 毫秒后触发一次 timeout 信号 。使用 QLCDNumber 读取这个信号后 --1 ,就可以完成一个定时器:
注意,这里不宜使用多线程自定义一个 timer,Qt 禁止除主线程以外的线程对控件进行修改。
#include "widget.h"
#include "ui_widget.h"
#include <QTimer>
QTimer* timer;//因为timer要在槽函数中使用,需要定义为全局变量
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
timer=new QTimer(this);
ui->lcdNumber->display(10);
connect(timer,&QTimer::timeout,this,&Widget::updateTime);//注意要在start()之前绑定槽函数
timer->start(1000);
}
Widget::~Widget()
{
delete ui;
}
void Widget::updateTime()
{
int value=ui->lcdNumber->intValue();
if(value<=0)
{
timer->stop();
return;
}
ui->lcdNumber->display(value-1);
}

QLCDNumber会在十秒从 10 倒计时到 0 。
