• 【Qt6.3 基础教程 05】 掌握Qt Widgets:使用 QLabel 和 QPushButton



    前言

    当涉及到构建图形用户界面(GUI)时,掌握Qt Widgets是至关重要的。本篇博客将详细介绍如何使用两个最基本的Qt Widgets:QLabelQPushButton。无论你是在创建一个简单的信息窗口还是一个复杂的应用程序,这些组件都是你工具箱中的基础。

    QLabel:展示文本和图片

    QLabel是一个提供文本或图像显示的控件。在Qt中,QLabel可以显示多行纯文本或富文本,甚至像素图和矢量图。

    基本用法

    创建一个QLabel并设置文本非常直接:

    QLabel *label = new QLabel("Hello, World!");
    label->show();
    

    以上代码会创建一个包含"Hello, World!"文本的标签,并显示在屏幕上。

    格式化文本

    QLabel还支持富文本格式,这意味着你可以使用HTML标签来增强文本样式:

    QLabel *label = new QLabel("

    Hello, World!

    "
    ); label->show();

    这将显示一个带有斜体和红色"World!"的文本。

    显示图片

    如果你想在QLabel中显示图像,可以这样做:

    QLabel *imageLabel = new QLabel;
    QPixmap pixmap("path/to/image.jpg");
    imageLabel->setPixmap(pixmap);
    imageLabel->show();
    

    以上代码创建了一个QLabel,并设置了一个图片作为内容。

    QPushButton:创建按钮

    QPushButton是Qt中最常用的按钮控件。它可以显示文本、图像,甚至可以有多种样式。

    创建按钮

    创建一个按钮和设置其显示文本的方式如下:

    QPushButton *button = new QPushButton("Click Me");
    button->show();
    

    运行这段代码,你将看到一个显示"Click Me"的按钮。

    响应按钮点击

    要使按钮对点击作出反应,你需要将其点击信号连接到一个槽函数:

    QObject::connect(button, &QPushButton::clicked, [](){
        qDebug() << "Button clicked!";
    });
    

    当按钮被点击时,控制台将输出"Button clicked!"。

    整合 QLabel 和 QPushButton

    在一个实际的应用中,你可能会想要在点击按钮后更新标签的文本。以下是一个简单的例子:

    QLabel *label = new QLabel("点击按钮更改文本");
    QPushButton *button = new QPushButton("更改文本");
    
    QObject::connect(button, &QPushButton::clicked, [label](){
        label->setText("文本已更改!");
    });
    
    QVBoxLayout *layout = new QVBoxLayout;
    layout->addWidget(label);
    layout->addWidget(button);
    
    QWidget *window = new QWidget;
    window->setLayout(layout);
    window->show();
    

    在这个例子中,我们创建了一个标签和一个按钮,然后将按钮的clicked信号连接到了一个更新标签文本的匿名函数中。之后,我们创建了一个垂直布局,并把标签和按钮都添加到其中。最后,我们创建了一个窗口,设置了布局,并显示了它。

    结论

    QLabelQPushButton是构建Qt GUI应用程序的基础。通过结合使用文本、图像和交互性,你可以开始构建用户友好和功能强大的应用程序。请记住,Qt的美在于其简洁性和灵活性,而这只是开始。在接下来的课程中,我们将探讨如何使用更复杂的Widgets,如QMainWindow和布局管理器,来构建更高级的用户界面。

  • 相关阅读:
    Hadoop常见异常及其解决方案
    2020江西省赛A 莫比乌斯反演
    elmentUI多级菜单动态显示
    java-net-php-python-jspm酒店信息管理系统计算机毕业设计程序
    基于Python web信息旅游管理系统
    [Linux1]入门基础知识
    微信小程序学习
    Spring框架笔记
    第2篇【Docker项目实战】使用Docker部署Raneto知识库平台(转载)
    2 路 2GSPS/2.6GSPS/3GSPS 14bit AD 采集卡/ FMC 子卡 (AD9208/ AD9689)
  • 原文地址:https://blog.csdn.net/weixin_51352614/article/details/139731568