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

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.lryc.cn/news/478221.html

相关文章:

  • Docker Compose部署Powerjob
  • 前端使用PDF.js把返回的base64或二进制文件流格式,实现pdf文件预览
  • 如何利用 Python 的爬虫技术获取淘宝天猫商品的价格信息?
  • 论文阅读笔记:Activating More Pixels in Image Super-Resolution Transformer
  • VSCode 与 HBuilderX 介绍
  • 《Vision Transformer with Deformable Attention》论文翻译
  • 爬虫下载网页文夹
  • 深入探讨钉钉与金蝶云星空的数据集成技术
  • 小语言模型介绍与LLM的比较
  • ThreadLocal从入门到精通
  • 小新学习k8s第六天之pod详解
  • 9、node.js和Lowdb
  • WebAPI编程(第五天,第六天,第七天)
  • 香港服务器网络延迟的测量指标包括哪些?
  • 【综合案例】使用React编写B站评论案例
  • 【AIGC】腾讯云语音识别(ASR)服务在Spring Boot项目中的集成与实践
  • 基于 Vue3、Vite 和 TypeScript 实现开发环境下解决跨域问题,实现前后端数据传递
  • 前端面筋(持续更新)
  • 深度学习-迁移学习
  • 6.0、静态路由
  • Redis学习:BitMap/HyperLogLog/GEO案例 、布隆过滤器BloomFilter、缓存预热+缓存雪崩+缓存击穿+缓存穿透
  • Lua数据类型
  • CSS中的背景色和前景色
  • 伊莱亚斯 M. 斯坦恩(Elias M. Stein)《复分析》与《实分析》教材
  • UCLA、MIT数学家推翻39年经典数学猜想!AI证明卡在99.99%,人类最终证伪
  • 大厂面试真题-很多系统会使用netty进行长连接,连接太多会有问题吗
  • Android RecyclerView ,使用ItemDecoration设置边距的大坑:左右边距不均匀/不同,已解决。
  • 系统上云-流量分析和链路分析
  • Apache 配置出错常见问题及解决方法
  • DGL库之dgl.function.u_mul_e(代替dgl.function.src_mul_edge)