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

78Qt窗口_QStatusBar的基本使用

目录

3. 状态栏

3.1 状态栏的创建

3.2 在状态栏中显⽰实时消息

3.3 在状态栏中显⽰永久消息

调整显⽰消息的位置

添加多个子控件


3. 状态栏

状态栏是应⽤程序中输出简要信息的区域。⼀般位于主窗⼝的最底部,⼀个窗⼝中最多只能有⼀个状 态栏。在 Qt 中,状态栏是通过 QStatusBar类 来实现的。 在状态栏中可以显⽰的消息类型有:
实时消息:如当前程序状态
永久消息:如程序版本号,机构名称
进度消息:如进度条提⽰,百分百提⽰

3.1 状态栏的创建

状态栏的创建是通过 QMainWindow 类 提供的 statusBar() 函数来创建;⽰例如下:
    // 存在就获取, 不存在就创建QStatusBar* statusBar = this->statusBar();// 如果状态栏没有被创建, 这样的设置是必要的.// 如果状态栏已经在窗口中存在, 这样的设置其实意义不大, 但是也没副作用. 仍然保留.this->setStatusBar(statusBar);

3.2 在状态栏中显⽰实时消息

在状态栏中显⽰实时消息是通过 showMessage() 函数来实现,⽰例如下:
    // 显示一个临时的信息,状态栏中显示大约2秒statusBar->showMessage("这是一个状态消息", 2000);
通过showMessage可以在状态栏中显示一个文本.
此时这个文本存在的时间可以自定义.timeout参数是一个单位为ms的时间.
如果timeout为0(不填),消息就会持久存在~~

3.3 在状态栏中显⽰永久消息

在状态栏中可以显⽰永久消息,此处的永久消息是通过 标签 来显⽰的;⽰例如下:
状态栏中还可以添加其他控件~~
    // 给状态栏中添加子控件QLabel* label = new QLabel("这是一个 QLabel提示消息");statusBar->addWidget(label);

调整显⽰消息的位置

    // 给状态栏中添加子控件QLabel* label = new QLabel("这是一个 QLabel提示消息");statusBar->addWidget(label);// 给状态栏右侧中添加子控件QLabel* label2 = new QLabel("这是一个 右侧QLabel提示消息");statusBar->addPermanentWidget(label2);

添加多个子控件

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QLabel>
#include <QProgressBar>
#include <QPushButton>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);// 存在就获取, 不存在就创建QStatusBar* statusBar = this->statusBar();// 如果状态栏没有被创建, 这样的设置是必要的.// 如果状态栏已经在窗口中存在, 这样的设置其实意义不大, 但是也没副作用. 仍然保留.this->setStatusBar(statusBar);// 显示一个临时的信息,状态栏中显示大约2秒
//    statusBar->showMessage("这是一个状态消息", 2000);// 给状态栏中添加子控件QLabel* label = new QLabel("这是一个 QLabel提示消息");statusBar->addWidget(label);// 给状态栏右侧中添加子控件QLabel* label2 = new QLabel("这是一个 右侧QLabel提示消息");statusBar->addPermanentWidget(label2);QProgressBar* progressBar = new QProgressBar();progressBar->setRange(0, 100);progressBar->setValue(50);statusBar->addWidget(progressBar);QPushButton* pushButton = new QPushButton("按钮");statusBar->addWidget(pushButton);}MainWindow::~MainWindow()
{delete ui;
}

注意:

statusBar->showMessage("这是一个状态消息", 2000);
// 给状态栏中添加子控件
    QLabel* label = new QLabel("这是一个 QLabel提示消息");
    statusBar->addWidget(label);

不能同时显示,只能显示一种

http://www.xdnf.cn/news/13883.html

相关文章:

  • centos6.5 老旧系统编译glib-2.58.3.tar.bz2
  • mesh转solid freecad
  • OpenCV——图像基本操作(三)
  • 【开发常用命令】:docker常用命令
  • preload、preconnect、prefetch 的作用
  • day033-备份服务rsync
  • Pytorch中view函数详解和工程实战示例
  • docker compose的变量使用说明
  • 【完整源码+数据集+部署教程】太阳能板灰尘检测系统源码和数据集:改进yolo11-LVMB
  • 京津冀城市群13城市空间权重0-1矩阵
  • Rosetta 2介绍
  • 第三章支线七 ·路由边境 · 多页世界的穿梭之术
  • 【MicronTech】eMMC 部件编号解析
  • flutter 的lottie执行一次动画后关闭
  • Windows美化终端、安装wsl和docker
  • Python Day49
  • 一阶/二阶Nomoto模型(野本模型)为何“看不到”船速对回转角速度/角加速度的影响?
  • 智慧管廊数字化运维管理平台
  • 规则引擎rule-engine v1.0实现解释(一)-规则,执行,容器
  • Vue3中组件Ref打印Proxy(Object)与defineExpose的深度解析
  • navicat 有免费版了,navicat 官方免费版下载
  • vue2项目开发中遇到的小问题
  • Goland使用手册(1)
  • 【亲测有效】MybatisPlus中MetaObjectHandler自动填充字段失效
  • Tess4J:基于 Java 的 OCR 解决方案
  • php反序列化漏洞学习
  • 电脑PC端使用的备忘录记事软件推荐哪个
  • 【3】使用TRAE AI在已有框架中新增页面并实现切换的痛苦经历
  • boa 找不到动态库的解决办法:
  • 【零基础勇闯嵌入式岗】从单片机低功耗中获得的启发