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


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

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

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


一、状态栏

1. 什么是状态栏

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

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

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

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

二、QStatusBar介绍

1. 简介

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

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

2. 常用属性

属性说明
currentMessage当前显示的文本消息。
可以使用setCurrentMessage()方法来设置。
sizeGripEnabled是否显示大小调整控件。
默认情况下,状态栏右侧会显示一个大小调整的小部件,可以通过设置该属性为false来隐藏它。
visible状态栏的可见性。
可以使用setVisible()方法来设置状态栏的可见性。
count状态栏当前显示的小部件数量。
可以通过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
在这里插入图片描述


在这里插入图片描述

  • 14
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Duck Bro

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

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

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

打赏作者

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

抵扣说明:

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

余额充值