QLCDNumber使用
QLCDNumber控件用于显示一个带有类似液晶显示屏效果的数字。
它可以显示几乎任何尺寸的数字,同时支持显示十进制,十六进制,八进制或二进制数。使用display()槽可以容易地连接到数据源,它被重写可以接收五种参数类型。
也有一些槽函数可以修改进制的形式,比如setModel(),还可以用setSmallDecimalPoint()设置小数点。
当QLCDNumber被要求显示超出其范围的内容时,会发出overflow()信号。该范围由setDigitCount()设置,但setSmallDecimalPoint()也会影响它。
如果显示设置为十六进制,八进制或二进制,则显示该值的转换为整数的值。
可以显示这些数字和其他符号:0/0,1,2,3,4,5 / S,6,7,8,9 / g,减号,小数点,A,B,C,D,E, F,h,H,L,o,P,r,u,U,Y,冒号,度数符号(在字符串中被指定为单引号)和空格。 QLCDNumber将空格替换为非法字符。
尽管您可以使用value()检索数值,但是无法检索QLCDNumber对象的内容。 如果真的需要文本,我们建议您将display()槽的信号连接到另一个槽,并将其存储在那里。
另外,QLCDNumber是Qt最古老的部分,可以追溯到Sinclair Spectrum的BASIC程序。
例0049 设置显示模式
QLCDNumber有以下几种模式:
setHexMode()-十六进制
setDecMode()-十进制
setOctMode()-八进制
setBinMode()-二进制
lcdNum->setDecMode();
如上,则会设置十进制模式,LCDNumber控件的数字为十进制模式
例0050设置可显示的位数
lcdNum->setDigitCount(10);
将会设置最长显示10位数字。要特别注意的是,如果你的显示数字是小数位,而超出10位数,并不会触发overflow信号,而是会出错,在实际操作中要特别注意。
例0051设置小数点是否占位
lcdNum->setSmallDecimalPoint(true);
如果为真,那么小数点就会在两个数字之间存在,而不会单独占一个位置,如果是没有设置,默认是false,那就会单独占位。
例0052设置外观和样式
//设置显示外观
lcdNum->setSegmentStyle(QLCDNumber::Flat);
//设置样式
lcdNum->setStyleSheet("border:2pxsolidgreen;color:red;background:silver;");
Qt提供了多种样式,你完全可以根据需要来选择:
Constant |
Value |
Description |
QLCDNumber::Outline |
0 |
gives raised segments filled with the background color. |
QLCDNumber::Filled |
1 |
gives raised segments filled with the windowText color. |
QLCDNumber::Flat |
2 |
gives flat segments filled with the windowText color. |
当然,这显然是不够的,因此特殊情况,千万别忘记还有setStyleSheet()函数
例0053 触发溢出信号
首先是建立连接
connect(lcdNum,SIGNAL(overflow()),this,SLOT(onOverFlow()));
槽函数:
voidMainWindow::onOverFlow()
{
this->setWindowTitle("数值超出范围!");
}
简单的触发,实现的是溢出时候修改标题提示溢出(为了简洁,没有使用信息框)。
在这里,你也可以尝试使用小数来测试溢出,会有很多有意思的事情。
欢迎关注微信公众号: