【Qt 学习笔记】Qt窗口 | 状态栏 | QStatusBar的使用及说明


  • 博客主页:Duck Bro 博客主页
  • 系列专栏:Qt 专栏
  • 关注博主,后期持续更新系列文章
  • 如果有错误感谢请大家批评指出,及时修改
  • 感谢大家点赞👍收藏⭐评论✍

Qt窗口 | 状态栏 | QStatusBar的使用及说明

文章编号:Qt 学习笔记 / 49

文章目录

  • Qt窗口 | 状态栏 | QStatusBar的使用及说明
    • 一、状态栏
      • 1. 什么是状态栏
    • 二、QStatusBar介绍
      • 1. 简介
      • 2. 常用属性
      • 3. 常用方法
    • 三、代码创建状态栏
      • 1. 创建状态栏
      • 2. 状态栏中显示实时信息
      • 3. 状态栏中显示文字(包含右侧显示文字)
      • 4. 状态栏中显示进度条


一、状态栏

1. 什么是状态栏

状态栏是应⽤程序中输出简要信息的区域。⼀般位于主窗⼝的最底部,⼀个窗⼝中最多只能有⼀个状态栏。在 Qt 中,状态栏是通过 QStatusBar类 来实现的。

状态栏是指位于计算机屏幕顶部或移动设备屏幕顶部的一个区域,用于显示设备的当前状态信息和提供快捷操作功能。在计算机操作系统中,状态栏通常显示有关网络连接、电源、音量、通知等信息。

在状态栏中可以显⽰的消息类型有:

  • 实时消息:如当前程序状态
  • 永久消息:如程序版本号,机构名称
  • 进度消息:如进度条提⽰,百分百提⽰

二、QStatusBar介绍

1. 简介

QStatusBar是Qt框架提供的一个小部件,用于在应用程序窗口底部显示状态信息。它可以显示一些固定的文本和图标,并且可以通过API动态更新显示内容。

QStatusBar可以用于显示应用程序的状态信息,如进度条、消息、错误提示等。它通常是一个水平的窗口部件,可以显示多行文本内容。使用QStatusBar,开发人员可以方便地在应用程序窗口底部显示状态信息,提高用户体验。

2. 常用属性

属性说明
currentMessage当前显示的文本消息。
可以使用setCurrentMessage()方法来设置。
sizeGripEnabled是否显示大小调整控件。
默认情况下,状态栏右侧会显示一个大小调整的小部件,可以通过设置该属性为false来隐藏它。
visible状态栏的可见性。
可以使用setVisible()方法来设置状态栏的可见性。
count状态栏当前显示的小部件数量。<.br>可以通过addWidget()方法添加小部件,并通过removeWidget()方法移除小部件。
maximumHeight状态栏的最大高度。
可以使用setMaximumHeight()方法设置状态栏的最大高度。

3. 常用方法

方法说明
showMessage()显示一条文本消息。可以指定消息内容、显示时间和消息类型(例如,临时消息或永久消息)。
clearMessage()清除当前显示的消息。
addWidget()添加一个小部件到状态栏。可以添加QLabel、QProgressBar等小部件。
removeWidget()移除状态栏上的指定小部件。
insertWidget()在指定位置插入一个小部件到状态栏。
setStyleSheet()设置状态栏的样式表。
setSizeGripEnabled()设置是否显示大小调整控件。
setVisible()设置状态栏的可见性。
heightForWidth()根据宽度计算状态栏的高度。

三、代码创建状态栏

1. 创建状态栏

状态栏的创建是通过QMainWindow类提供的statusBar()函数来创建

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    //创建状态栏
    QStatusBar* stbar =this->statusBar();
    //设置到窗口中
    this->setStatusBar(stbar);
}

运行结果
此时状态栏中没有内容
在这里插入图片描述

2. 状态栏中显示实时信息

在状态栏中显⽰实时消息是通过showMessage()函数来实现

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    //创建状态栏
    QStatusBar* stbar =this->statusBar();
    //设置到窗口中
    this->setStatusBar(stbar);
    //显示实时信息
    stbar ->showMessage("Duck Bro",3000);  //这里3000的意思是显示3秒
}

运行结果
"Duck Bro"在显示3秒后消失
在这里插入图片描述

3. 状态栏中显示文字(包含右侧显示文字)

在状态栏中可以显⽰永久消息,此处的永久消息是通过 标签 来显⽰的
通过向状态栏中插入label控件来达到实现显示永久消息
在这里插入图片描述

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QLabel>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QStatusBar* stbar = this->statusBar();
    this->setStatusBar(stbar);
    //创建label控件
    QLabel* label = new QLabel("永久显示信息",this);
    //将标签设置到状态栏中
    stbar->addWidget(label);
    //创建label控件
    QLabel* label1 = new QLabel("右侧显示信息",this);
    //将标签设置到状态栏的右侧
    stbar->addPermanentWidget(label1);
}

MainWindow::~MainWindow()
{
    delete ui;
}

运行结果
消息会永久显示,不会消失
在这里插入图片描述

4. 状态栏中显示进度条

同上述还可以插入其他控件,在这里演示插入进度条

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QProgressBar>
#include <QLabel>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QStatusBar* stbar = this->statusBar();
    this->setStatusBar(stbar);
    QLabel * label = new QLabel("我是进度条",this);
    stbar->addWidget(label);
    QProgressBar * progressbar = new QProgressBar();
    progressbar->setRange(0,100);
    progressbar->setValue(50);
    stbar->addWidget(progressbar);
}

MainWindow::~MainWindow()
{
    delete ui;
}

运行结果
在标签中插入进度条,设置0到100,当前值为50
在这里插入图片描述


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/637289.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一文搞定cuda版本、显卡驱动及多CUDA版本管理

安装cuda是每个AI从业人员必经之路。网上关于cuda、显卡驱动已经相关命令很多都解释不清楚&#xff0c;于是本文梳理一下&#xff0c;既方便自己记忆&#xff0c;也方便小白学习。 CUDA 首先&#xff0c;CUDA版本&#xff0c;一般指cuda-toolkit&#xff0c;即cuda开发工具包…

开源绘图工具Rnote使用体验分享

软件介绍 Rnote,这款致力于提供矢量绘图、手写笔记以及文档注释功能的免费开源软件,逐渐成为了学生、教师以及绘图板用户的新宠。其独特之处在于,它不仅支持PDF和图片的导入导出,还拥有无限画布和适应各种屏幕大小的界面设计,这些功能使得Rnote在众多同类软件中脱颖而出。…

python抽取pdf中的参考文献

想将一份 pdf 论文中的所有参考文献都提取出来&#xff0c;去掉不必要的换行&#xff0c;放入一个 text 文件&#xff0c;方便复制。其引用是 ieee 格式的&#xff0c;形如&#xff1a; 想要只在引用序号&#xff08;如 [3]&#xff09;前换行&#xff0c;其它换行都去掉&…

【中霖教育口碑】什么情况下不允许参加注册会计师考试?

对于某些特殊情况&#xff0c;存在明确的禁止性规定&#xff0c;是不能参加注册会计师考试的&#xff0c;中霖为大家分享一下!关于注册会计师全国统一考试的资格条件&#xff0c;需明确以下要点&#xff1a; 1. 针对在前期注册会计师统一考试中因违反规定而受到禁止参加考试的…

awesome-ai4s 现已开源!超全 AI for Science 学术论文与数据资源汇总,持续更新ing

2018 年中国科学院院士鄂维南提出「AI for Science」概念&#xff0c;强调利用 AI 学习科学原理、创造科学模型来解决实际问题。同年&#xff0c;AlphaFold 崭露头角&#xff0c;从 43 种蛋白质中准确预测出了 25 种蛋白质结构。2021 年&#xff0c;AlphaFold 2 开源并预测了 9…

现代前端工程化实践:Git、Husky、Commitlint与PNPM的协同作战

引言 Git Husky 与 Commitlint 是两个在 Git 工作流程中非常实用的工具&#xff0c;它们可以帮助团队维护代码质量和提交规范。Husky 是一个 Git 钩子管理器&#xff0c;允许你在仓库级别方便地配置钩子脚本&#xff1b;而 Commitlint 则是用来规范 Git 提交信息的工具&#x…

上位机图像处理和嵌入式模块部署(mcu之芯片选择)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 目前市面上的mcu很多&#xff0c;有国产的&#xff0c;有进口的&#xff0c;总之种类很多。以stm32为例&#xff0c;这里面又包括了stm32f1、stm32…

AWS EC2 连接 AWS RDS(Mysql)

1 创建RDS数据库 点击创建数据库 引擎选项 模板 设置 连接 2 EC2连接Mysql $ sudo yum list mariadb* Installed Packages mariadb-connector-c.x86_64 3.1.13-1.amzn2023.0.3 amazonl…

飞睿智能超宽带UWB标签模组,简化设备开发流程,实时高速率数传交互应用

在科技飞速发展的今天&#xff0c;UWB超宽带技术因其高精度、低功耗和高安全性的特点&#xff0c;正逐渐成为智能设备定位和数据传输的新宠。 UWB技术是一种无线通信技术&#xff0c;它通过使用非常宽的频带进行数据传输&#xff0c;从而实现高数据传输速率和高精度定位。 飞…

远动通讯屏的原理和应用

远动通讯屏的原理和应用 远动通讯屏&#xff0c;是一种集显示和远程控制于一体的智能化控制设备。它可以通过网络、通信线路等方式实现与远程设备的通讯和交互&#xff0c;从而实现远程监控和控制。 远动通讯屏实现远程控制的核心原理是基于PLC&#xff08;Programmable Logic …

彩色进度条(C语言版本)

.h文件 #include<stdio.h> #include<windows.h>#define NUM 101 #define LOAD_UP 50 #define LOAD_DOWN 60 #define SLEEP_SLOW 300 #define SLEEP_FAST 70 版本1&#xff1a;&#xff08;初始版&#xff09; //v1 #include "progress.h" int main() …

C# GetManifestResourceStream 获取项目资源为null解决方案(亲测)

GetManifestResourceStream 获取项目资源为null 使用Stream s assembly.GetManifestResourceStream(Assembly.GetExecutingAssembly().GetName().Name resourceName) 获取资源文件&#xff0c;返回流为null&#xff0c;如图所示&#xff1a; 解决方案 设置资源文件的 属性&…

创建一个python的Django项目文件

创建一个python的Django项目文件(内含conda) 文章目录 创建一个python的Django项目文件(内含conda)前言一、conda环境的下载二、配置conda的环境变量三、激活管理环境四、下载Django五、创建Django项目文件六、启动Django文件七、用pycharm直接创建Django文件 前言 大家好,今天…

Android和flutter交互,maven库的形式导入aar包

记录遇到的问题&#xff0c;在网上找了很多资料&#xff0c;都是太泛泛了&#xff0c;使用后&#xff0c;还不能生效&#xff0c;缺少详细的说明&#xff0c;或者关键代码缺失&#xff0c;我遇到的问题用红色的标注了 导入aar包有两种模式 1.比较繁琐的&#xff0c;手动将aar…

Mac Pro中的开源虚拟机UTM安装ubuntu(Applce M1,M2芯片)(2)

第一步&#xff0c;先安装UTM 链接: https://blog.csdn.net/qq_38382925/article/details/139157877?spm1001.2014.3001.5501 1.在虚拟机上安装Ubuntu 1.1 选择第一个&#xff0c;回车 1.2 语言选择english 1.3 选择done continue: 1.4 输入名字、密码等 1.5 选择继续 1.…

正则表达式(知识总结篇)

本篇文章主要是针对初学者&#xff0c;对正则表达式的理解、作用和应用 正则表达式&#x1f31f; 一、&#x1f349;正则表达式的概述二、&#x1f349;正则表达式的语法和使用三、 &#x1f349;正则表达式的常用操作符四、&#x1f349;re库主要功能函数 一、&#x1f349;正…

ffmpeg-webrtc(metartc)给ffmpeg添加webrtc协议

这个是使用metrtc的库为ffmpeg添加webrtc传输协议&#xff0c;目前国内还有一个这样的开源项目&#xff0c;是杨成立大佬&#xff0c;大师兄他们在做&#xff0c;不过wili页面维护的不好&#xff0c;新手不知道如何使用&#xff0c;我专门对它做过介绍&#xff0c;另一篇博文&a…

Pytorch深度学习实践笔记1

&#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;pytorch深度学习 &#x1f380;CSDN主页 发狂的小花 &#x1f304;人生秘诀&#xff1a;学习的本质就是极致重复! 《PyTorch深度学习实践》完结合集_哔哩哔哩_bilibi…

MySQL5个查询

# 总查询 EXPLAIN SELECT * FROM city; # 范围查询 EXPLAIN SELECT * from city where ID>5 and ID<20; #主键查询 EXPLAIN SELECT * from city where ID5; # 索引查询 EXPLAIN SELECT * from city where CountryCodeNLD; # 普通索引 EXPLAIn SELECT * from cit…

班组管理新篇章:打造高效沟通机制,助推团队协同发展

班组作为组织的基本单位&#xff0c;其沟通的顺畅与否直接关系到整个组织的运行效率和团队的凝聚力。建立健全的班组管理沟通机制&#xff0c;不仅是提升工作效率的关键&#xff0c;更是推动团队持续发展的核心动力。那么&#xff0c;如何建立健全的班组管理沟通机制呢&#xf…