QLCDNumber Class
QLCDNumber小部件用类似LCD的数字显示一个数字。
Header | #include < QLCDNumber > |
---|---|
qmake | QT += widgets |
Inherits | QFrame |
Inherited By |
详细说明
它可以显示任何大小的数字。它可以显示十进制,十六进制,八进制或二进制数字。使用display() 槽连接到数据源是很容易的,它被重载为五种参数类型中的任何一种。
还有一些插槽可以使用setMode() 更改进制,使用setMallDecimalPoint() 更改小数点。
当要求QLCDNumber显示超出其范围的内容时,它会发出溢出() 信号。范围由setDigitCount() 设置,但setMallDecimalPoint() 也会影响它。如果显示设置为十六进制、八进制或二进制,则显示与该值相等的整数。
这些数字和其他符号可以显示:0/O、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谱上的一个基本程序。
公共类型
enum Mode
此类型确定数字的显示方式。
Constant | Value | Description |
---|---|---|
QLCDNumber::Hex | 0 | Hexadecimal |
QLCDNumber::Dec | 1 | Decimal |
QLCDNumber::Oct | 2 | Octal |
QLCDNumber::Bin | 3 | Binary |
如果显示设置为十六进制、八进制或二进制,则显示与该值相等的整数。
enum SegmentStyle
此类型决定QLCDNumber小部件的视觉外观。
Constant | Value | Description |
---|---|---|
QLCDNumber::Outline | 0 | 给凸起的部分填充背景色。 |
QLCDNumber::Filled | 1 | 提供用windowText颜色填充的凸起段。 |
QLCDNumber::Flat | 2 | 提供用windowText颜色填充的扁平段。 |
属性
-
digitCount: int 当前显示的位数
对应于当前的位数。如果QLCDNumber::smallDecimalPoint为false,则小数点占据一位数的位置。
默认情况下,此属性包含值5。Access functions:
- int digitCount() const
- void setDigitCount(int numDigits)
-
intValue: int 舍入到最接近整数的显示值
此属性对应于与LCDNumber显示的当前值最接近的整数。这是用于十六进制、八进制和二进制模式的值。
如果显示的值不是数字,则该属性的值为0。默认情况下,此属性包含值0。
Access functions:
- int intValue() const
- void display(const QString &s)
- void display(int num)
- void display(double num)
-
mode: Mode 当前显示模式(数字进制)
对应当前显示模式,即Bin、Oct、Dec(默认)和Hex之一。Dec模式可以显示浮点值,其他模式显示等效整数。
Access functions:
- QLCDNumber::Mode mode() const
- void setMode(QLCDNumber::Mode)
-
segmentStyle: SegmentStyle LCDNumber的样式
Style Result Outline 生成填充背景色的凸起线段 Filled (this is the default). 产生充满前景色的凸起部分。 Flat 生成充满前景色的平面段。 Outline和Filled还将使用QPalette::light()和QPalette::dark()实现阴影效果。
Access functions:- QLCDNumber::SegmentStyle segmentStyle() const
- void setSegmentStyle(QLCDNumber::SegmentStyle)
-
smallDecimalPoint: bool 小数点的样式
如果为真,则小数点在两位之间。否则,它将占据自己的数字位置,即在数字位置绘制。默认值为false。
当在数字之间画小数点时,数字之间的空间会稍微变宽。Access functions:
- bool smallDecimalPoint() const
- void setSmallDecimalPoint(bool)
-
value: double 显示的值 (保持了实际的值)
此属性与LCDNumber显示的当前值相对应。
如果显示的值不是数字,则该属性的值为0。
默认情况下,此属性包含值0。Access functions:
- double value() const
- void display(const QString &s)
- void display(int num)
- void display(double num)
公共函数
构造和析构
- QLCDNumber(uint numDigits, QWidget *parent = nullptr)
- QLCDNumber(QWidget *parent = nullptr)
- virtual ~QLCDNumber()
属性相关
- int digitCount() const
- void setDigitCount(int numDigits)
- int intValue() const
- QLCDNumber::Mode mode() const
- void setMode(QLCDNumber::Mode)
- QLCDNumber::SegmentStyle segmentStyle() const
- void setSegmentStyle(QLCDNumber::SegmentStyle)
- bool smallDecimalPoint() const
- double value() const
其他
-
bool checkOverflow(double num) const 如果num太大而无法完整显示,则返回true;否则返回false。
-
bool checkOverflow(int num) const 重载
重写的公共函数
- virtual QSize sizeHint() const override
公共槽
- void display(double num)
- void display(int num)
- void display(const QString &s)
- void setBinMode()
- void setDecMode()
- void setHexMode()
- void setOctMode()
- void setSmallDecimalPoint(bool)
信号
-
void overflow() 每当要求QLCDNumber显示过大的数字或过长的字符串时,就会发出此信号。
它从不由setDigitCount()发出。
重写的受保护函数
- virtual bool event(QEvent *e) override
- virtual void paintEvent(QPaintEvent *) override
参见
- 数字时钟示例 Digital Clock Example
- Tetrix示例 Tetrix Example