当前位置: 首页 > article >正文

qt QStatusBar详解

1、概述

QStatusBar是Qt框架提供的一个小部件,用于在应用程序窗口底部显示状态信息。它可以显示一些固定的文本和图标,并且可以通过API动态更新显示内容。QStatusBar通常是一个水平的窗口部件,能够显示多行文本内容,非常适合用于显示应用程序的状态信息,如进度条、消息、错误提示等。使用QStatusBar,开发人员可以方便地在应用程序窗口底部向用户展示状态信息,从而提升用户体验。

在计算机操作系统中,状态栏通常显示有关网络连接、电源、音量、通知等信息。而在Qt中,状态栏特指位于应用程序主窗口最底部的区域,一个窗口中最多只能有一个状态栏。

2、重要方法
  • showMessage():用于在状态栏中显示临时消息。临时消息会短暂显示,并在指定的时间后自动消失。例如,可以使用stbar->showMessage("Duck Bro", 3000);在状态栏中显示“Duck Bro”这条消息,持续时间为3秒。
  • addWidget():向状态栏中添加一个普通的窗口部件(widget),该部件可以被临时消息覆盖。
  • addPermanentWidget():向状态栏中添加一个永久的窗口部件,该部件不会被临时消息覆盖。
  • setSizeGripEnabled():设置状态栏右下角是否显示大小调整握柄。默认情况下,状态栏右下角会有一个小的三角形握柄,允许用户通过拖动来调整主窗口的大小。如果不需要这个功能,可以通过setStatusBar()->setSizeGripEnabled(false);来禁用它。

3、重要信号
  • messageChanged(const QString &message):每当临时消息更改时,QStatusBar都会发出此信号。新的临时消息在参数中传递,当消息被删除时,该参数是一个空字符串。
#include <QApplication>
#include <QMainWindow>
#include <QStatusBar>
#include <QLabel>
#include <QPushButton>

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

    // 创建一个QMainWindow对象作为主窗口
    QMainWindow window;
    window.setWindowTitle("QStatusBar Example");
    window.resize(800, 600);

    // 创建一个QStatusBar对象
    QStatusBar *statusBar = window.statusBar();

    // 在状态栏中添加永久性的标签
    QLabel *permanentLabel = new QLabel("Ready", &window);
    statusBar->addPermanentWidget(permanentLabel);

    // 创建一个按钮用于显示临时消息
    QPushButton *button = new QPushButton("Show Message", &window);
    window.setCentralWidget(button);

    // 连接按钮点击信号,显示临时消息
    QObject::connect(button, &QPushButton::clicked, [&]() {
        statusBar->showMessage("This is a temporary message", 2000); // 显示2秒钟
    });

    // 显示窗口
    window.show();

    return app.exec();
}

觉得有帮助的话,打赏一下呗。。

           


http://www.kler.cn/a/380277.html

相关文章:

  • 【C++】C++四种类型转换方式
  • 架构系列---高并发
  • VSCode 1.82之后的vscode server离线安装
  • Golang | Leetcode Golang题解之第524题通过删除字母匹配到字典里最长单词
  • 2、liunx网络基础
  • Elasticsearch Date类型,时间存储相关说明
  • k8s 查看cpu使用率最高的pod
  • Hive自定义函数—剔除周日周六(小时级别)
  • 爬虫学习4
  • Vue中ref、reactive、toRef、toRefs的区别
  • IoTDB时序数据库使用
  • R 环境安装
  • 103 - Lecture 2 Table and Data Part 1
  • 初识JDBC
  • 深度学习基础知识-全连接层
  • Spring Cloud OpenFeign:基于Ribbon和Hystrix的声明式服务调用
  • python之正则表达式总结
  • 一键AI换衣-可图AI试衣
  • qt QSplitter详解
  • MySQL 索引的底层实现原理与优化策略
  • python 爬虫0基础入门 (爬虫基础知识)
  • 深度学习中的迁移学习
  • 使用Kafka构建大规模消息传递系统
  • SpringBoot+Shirp的权限管理
  • 云专线优势有哪些?对接入网络有什么要求?
  • Vue3 keep-alive核心源码的解析