QT基础- 显示类控件

目录

一. QLabel

二. QLCDNumber

三. QProgressBar

四. QCalendarWidget

五. 总结

一. QLabel

QLabel是 Qt 中的标签类,主要用于显示文本或图像。

常用属性:

  • text:标签显示的文本内容。
  • alignment:文本的对齐方式。
  • pixmap:显示的图像。

常用方法:

  • setText(QString):设置文本。
  • setAlignment(Qt::Alignment):设置对齐方式。
  • setPixmap(QPixmap):设置图像。
  • clear():清除显示的内容。

代码:

#include <QLabel>
#include <QApplication>

int main(int argc, char *argv[]) {
    QApplication a(argc, argv);

    // 创建 QLabel 对象
    QLabel *label = new QLabel("Hello, QLabel!");

    // 设置 QLabel 的文本对齐方式
    label->setAlignment(Qt::AlignCenter);

    // 设置 QLabel 的样式表
    label->setStyleSheet("QLabel { color: red; font-size: 18px; }");

    // 显示 QLabel
    label->show();

    return a.exec();
}

代码详解:

在上述代码中,首先创建了一个QLabel对象,并设置了其显示的文本为"Hello, QLabel!"。然后,通过setAlignment方法设置了文本的对齐方式为居中对齐。接着,使用setStyleSheet方法设置了QLabel的样式表,包括文本颜色为红色,字体大小为18像素。最后,调用show方法显示QLabel

效果图:

二. QLCDNumber

QLCDNumber是Qt框架中用于显示数字的控件,它模拟了一个液晶数字显示屏。以下是QLCDNumber的一些常用属性和方法:

属性

  • digitCount:设置显示的数字位数;
  • segmentStyle:设置数字的外观样式;
  • value:获取或设置显示的数值;
  • mode:设置显示的进制模式(十进制、十六进制、八进制等)。

方法

  • display():设置要显示的数字或文本;
  • setDigitCount():设置显示的数字位数;
  • setMode():设置显示的进制模式;
  • setSegmentStyle():设置数字的外观样式。

以下是一个简单的示例代码,演示了如何使用QLCDNumber控件:

#include <QLCDNumber>
#include <QApplication>

int main(int argc, char *argv[]) {
    QApplication a(argc, argv);

    // 创建 QLCDNumber 对象
    QLCDNumber *lcdNumber = new QLCDNumber();

    // 设置显示的数字位数
    lcdNumber->setDigitCount(8);

    // 设置显示的数值
    lcdNumber->display(12345678);

    // 显示 QLCDNumber
    lcdNumber->show();

    return a.exec();
}

代码详解:

在上述代码中,首先创建了一个QLCDNumber对象,然后通过setDigitCount方法设置了显示的数字位数为8,通过display方法设置了要显示的数值为12345678。最后,调用show方法显示QLCDNumber控件。

效果图:

三. QProgressBar

QProgressBar是 Qt 中的进度条控件。

它主要用于直观地显示一个操作或任务的进度情况。用户可以通过设置其最小值、最大值和当前值来控制进度的显示。

它提供了一种可视化的方式让用户了解任务的进展程度,在诸如文件下载、数据处理等需要显示进度的场景中被广泛使用。通过动态更新进度条的当前值,可以实时反馈任务的推进情况。它具有简洁明了的外观,能够有效地传达进度信息,增强用户体验。

属性

  • minimum:最小值。
  • maximum:最大值。
  • value:当前值。

方法

  • setValue(int):设置当前进度值。
  • setMinimum(int):设置最小值。
  • setMaximum(int):设置最大值。

以下是一个示例代码:

#include <QApplication>
#include <QProgressBar>
#include <QWidget>
#include <QTimer>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    QWidget window;

    QProgressBar progressBar(&window);

    progressBar.setMinimum(0);
    progressBar.setMaximum(100);

    QTimer timer;
    int progressValue = 0;
    QObject::connect(&timer, &QTimer::timeout, [&]() {
        if (progressValue < 100) {
            progressBar.setValue(progressValue);
            progressValue++;
        } else {
            timer.stop();
        }
    });

    timer.start(100);

    window.show();

    return app.exec();
}

效果图:

四. QCalendarWidget

QCalendarWidget 是 Qt框架提供的一个用于显示日历的控件。它继承自 QWidget,无法像其他对话框一样弹出。以下是关于 QCalendarWidget 的详细介绍:

属性

  • dateEditAcceptDelay:获取和设置日期编辑器的延迟时间,即输入内容后编辑器保持打开的时间,默认为1500毫秒;
  • dateEditEnabled:描述是否启用日期编辑器弹出窗口;
  • minimumDate:设置日历的最小日期;
  • maximumDate:设置日历的最大日期;
  • firstDayOfWeek:设置一周的第一天;
  • gridVisible:设置是否显示网格;
  • horizontalHeaderFormat:设置水平头的显示格式;
  • verticalHeaderFormat:设置垂直头的显示格式。

方法

  • setDateRange:设置日期范围;
  • setSelectedDate:设置选中的日期;
  • selectedDate:获取选中的日期;
  • showToday:显示今天的日期;
  • showNextYear:显示下一年;
  • showNextMonth:显示下一个月;
  • setCurrentPage:设置当前显示的页面。

示例代码

#include <QApplication>
#include <QCalendarWidget>
#include <QWidget>
#include<QPushButton>
#include<iostream>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    QWidget window;

    QCalendarWidget calendar(&window);

    calendar.setMinimumDate(QDate(1999, 12, 12));
    calendar.setMaximumDate(QDate(2024, 12, 12));

    calendar.setDateRange(QDate(1999, 12, 12), QDate(2024, 12, 12));

    QPushButton btn(&window);
    btn.move(400, 400);
    btn.setText("测试按钮");

    QObject::connect(&btn, &QPushButton::clicked, [&]() {
        std::cout << "月份: " << calendar.monthShown() << std::endl;
        std::cout << "年份: " << calendar.yearShown() << std::endl;
    });

    window.show();

    return app.exec();
}

效果图:

五. 总结

以下是对这四个控件的简要总结:

QLabel

  • 主要用于显示文本或图像等信息。
  • 可以设置文本内容、字体、颜色等属性。
  • 常用于显示静态的提示信息或动态更新的文本数据。

QLCDNumber

  • 专门用于显示类似液晶数字的样式。
  • 通常用于显示数值信息,如计数器、时钟等。
  • 具有简洁直观的数字显示效果。

QProgressBar

  • 用于可视化地展示任务进度。
  • 可以设置进度范围和当前进度值。
  • 为用户提供直观的进度反馈。

QCalendarWidget

  • 提供了一个日历视图。
  • 方便用户进行日期选择和查看。
  • 可设置日期范围、显示格式等相关属性。

总的来说,这四个控件在 Qt 应用程序开发中各自发挥着重要作用,满足不同场景下的界面需求,从简单的信息展示到进度反馈以及日期交互等。

  • 14
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一然明月(全栈)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值