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

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

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

一、状态栏

1. 什么是状态栏

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


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

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

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

二、QStatusBar介绍

1. 简介

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


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

2. 常用属性

image.png

3. 常用方法

image.png

三、代码创建状态栏

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

目录
相关文章
|
4月前
|
C++ Windows
Qt 窗口置顶
Qt 窗口置顶
121 1
|
4月前
|
开发者
【Qt 学习笔记】Qt系统相关 | Qt事件 | 事件的介绍及基本概念
【Qt 学习笔记】Qt系统相关 | Qt事件 | 事件的介绍及基本概念
227 4
|
4月前
【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog
835 4
|
4月前
【Qt 学习笔记】Qt窗口 | 标准对话框 | 输入对话框QInputDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 输入对话框QInputDialog
307 3
|
4月前
|
数据可视化
【Qt 学习笔记】Qt窗口 | 标准对话框 | 字体对话框QFontDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 字体对话框QFontDialog
97 3
|
4月前
【qt】视口和窗口坐标
【qt】视口和窗口坐标
35 0
|
4月前
|
算法 数据安全/隐私保护
【qt】启动窗口的玩法
【qt】启动窗口的玩法
33 0
|
4月前
【qt】多窗口开发
【qt】多窗口开发
66 0
|
5月前
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
193 1
Qt(C++)开发一款图片防盗用水印制作小工具