1.QLCDNumber控件简介(Qt6.5.3版)
QLCDNumber控件显示带有类似 LCD 数字的数字。它可以显示十进制、十六进制、八进制或二进制数。
头文件引入 | #include<QLCDNumber> |
---|---|
CMake配置: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets |
qmake配置 | QT += widgets |
继承于 | QFrame控件 |
2.QLCDNumber基本使用(Qt6.5.3版-Mingw)
2.1使用纯代码写法
main.cpp文件
#include <QApplication>
#include <QWidget>
#include <QLCDNumber>
#include <QVBoxLayout>
#include <QLabel>
#include <QFormLayout>
// 创建并配置QLCDNumber控件的函数
QLCDNumber* createLCDNumber(int digits, const QString &value, QLCDNumber::SegmentStyle style, QSize maxSize, const QString &stylesheet) {
QLCDNumber *lcd = new QLCDNumber();
lcd->setDigitCount(digits); // 设置显示的数字位数
lcd->display(value); // 设置显示值
lcd->setSegmentStyle(style); // 设置显示样式
lcd->setMaximumSize(maxSize); // 设置最大尺寸
lcd->setStyleSheet(stylesheet); // 设置样式表
return lcd;
}
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QWidget window;
window.setWindowTitle("QLCDNumber Example");
window.setMinimumSize(800, 600);
// 使用封装的函数创建不同样式的QLCDNumber控件
QLCDNumber *lcdFlat = createLCDNumber(8, "11.111", QLCDNumber::Flat, QSize(200, 80),
"QLCDNumber { background-color: black; color: green; }");
QLCDNumber *lcdFilled = createLCDNumber(6, "22.22", QLCDNumber::Filled, QSize(200, 80),
"QLCDNumber { background-color: black; color: green; }");
QLCDNumber *lcdOutline = createLCDNumber(6, "33.33", QLCDNumber::Outline, QSize(200, 80),
"QLCDNumber { background-color: black; color: green; }");
QLCDNumber *lcdFont = createLCDNumber(12, "44.4444", QLCDNumber::Flat, QSize(150, 80),
"QLCDNumber { background-color: black; color: green; }");
// 创建布局并将控件添加到窗口中
QVBoxLayout *layout = new QVBoxLayout(&window);
QFormLayout *formLayout = new QFormLayout();
formLayout->addRow("Flat平面形式显示:", lcdFlat);
formLayout->addRow("Filled填充形式显示,qss样式不起效果:", lcdFilled);
formLayout->addRow("Outline平面形式显示,qss样式不起效果:", lcdOutline);
formLayout->addRow("lcd的字体大小受控件尺寸和显示位数影响,qss样式不起效果:", lcdFont);
layout->addLayout(formLayout);
window.setLayout(layout);
window.show();
return app.exec();
}