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

news2024/11/24 10:04:17

  • 博客主页: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
在这里插入图片描述


在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【学习笔记】Windows GDI绘图(六)图形路径GraphicsPath详解(中)

上一篇【学习笔记】Windows GDI绘图(五)图形路径GraphicsPath详解(上)介绍了GraphicsPath类的构造函数、属性和方法AddArc添加椭圆弧、AddBezier添加贝赛尔曲线、AddClosedCurve添加封闭基数样条曲线、AddCurve添加开放基数样条曲线、基数样条如何转Bezier、AddEllipse添加椭圆…

营销短信XML接口对接发送示例

在现代社会中&#xff0c;通信技术日新月异&#xff0c;其中&#xff0c;短信作为一种快速、简便的通信方式&#xff0c;仍然在日常生活中占据着重要的地位。为了满足各种应用场景的需求&#xff0c;短信接口应运而生&#xff0c;成为了实现高能有效通信的关键。 短信接口是一种…

Linux--07---查看CPU、内存、磁盘

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 常用命令1.查看CPU使用率1.1 top 命令第一行是任务队列信息&#xff1a; top第二行为进程的信息 Tasks第三行为CPU的信息Mem:Swap 1.2 vmstat命令参数详解每个参数的…

(二)可视化面板:Grafana的安装

其他相关文章 &#xff08;一&#xff09;一套开源的系统监控报警框架&#xff1a;Prometheus安装 什么是grafana Grafana是一个面板(Dashboard),有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器。支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB作为…

【ACM出版,下周召开】2024机器智能与数字化应用国际会议(MIDA2024)

会议日期&#xff1a;2024年5月30-31日 会议地点&#xff1a;中国-宁波 会议官网&#xff1a;https://www.iaast.cn/meet/home/Bx120sos 【大会主席】 Ljiljana Trajkovic 加拿大西蒙菲莎大学教授。 【论文出版与检索】 EI会议论文集-ACM出版 大会即日起围绕主题征集会…

K8s资源限制和三种探针

一 默写总结 1 pod 的组成 ① Pod 中有几种容器 init 初始化 &#xff0c;阻塞主容器运行&#xff0c;初始化后方可运行主容器 pause 基础容器&#xff1a; 提供network 的 namespace 和 共享存储 业务容器&#xff1a; 跑Pod 主应用 &#xff08;POD中跑什么&#xff1a;微…

22-LINUX--多线程and多进程TCP连接

一.TCP连接基础知识 1.套接字 所谓套接字(Socket)&#xff0c;就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端&#xff0c;提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲&#xff0c;套接字上联应用进程…

学习前端第四十三天(样式和类、元素大小和滚动、Window大小和滚动、坐标)

一、样式和类 1、className&#xff0c;classList elem.className 对应于 "class" 特性 <div id"box" class"a b" style"height: 20px;">box</div><script>const box document.getElementById("box");…

uniapp gaid-item组件增加角标的方法以及最新版本已删除角标参数的注意事项

在uniapp项目的开发中&#xff0c;列表组件gaid-item大家应该都是经常用的&#xff0c;其实组件上的角标用法也是很方便的&#xff0c;但是不熟悉的新手朋友&#xff0c;特别是用最新版的朋友可能都找不到角标方法的使用地方&#xff1a; 1.首先官方说明&#xff0c;在最新版本…

【Unity】免费的高亮插件——QuickOutline

除了常见的HighLightSystem来实现的高亮功能&#xff0c;其实还有很多的方法实现物体的高亮。 在 Unity资源商店 搜索OutLine&#xff0c;就会有很多免费好用的高亮插件。 下面介绍一下 QuickOutline这个插件&#xff0c;在 Unity资源商店 搜索到后&#xff0c;点击进去就可以…

【QGIS入门实战精品教程】13.1:导入带地理标签的航测照片

文章目录 一、数据准备二、导入带地理标签的航测照片三、导出点位shp四、生成航线一、数据准备 本实验数据位于13.1:导入带地理标签的航测照片.rar中,如下: 查看照片及相机参数信息,航测照片都带有相机参数、部分POS及地理坐标信息,如下所示: 二、导入带地理标签的航测照…

Java - AbstractQueuedSynchronizer

AQS简介 AQS全称AbstractQueuedSynchronizer&#xff0c;抽象队列同步器&#xff0c;是一个实现同步组件的基础框架。AQS使用一个int类型的成员变量state维护同步状态&#xff0c;通过内置的同步队列&#xff08;CLH锁、FIFO&#xff09;完成线程的排队工作&#xff0c;底层主…

AI大模型如何赋能智能座舱

AI 大模型如何赋能智能座舱 从上海车展上&#xff0c;我们看到由于智能座舱配置性价比较高&#xff0c;已经成为车企的核心竞争点之一&#xff0c;随着座舱硬件规模化装车&#xff0c;蔚小理、岚图、极狐等新势力开始注重座舱多模态交互&#xff0c;通过集成语音/手势/触控打造…

Vue速成学习笔记

这两天速成了一下Vue&#xff0c;在这里记录一下相关的笔记&#xff0c;之后有时间详细学Vue的时候再来回顾一下&#xff01; 一、Vue理解 1、Vue的核心特征&#xff1a;双向绑定。 在网页中&#xff0c;存在视图和数据。在Vue之前&#xff0c;需要使用JavaScript编写复杂的逻…

电脑同时配置两个版本mysql数据库常见问题

1.配置时&#xff0c;要把bin中的mysql.exe和mysqld.exe 改个名字&#xff0c;不然两个版本会重复&#xff0c;当然&#xff0c;在初始化数据库的时候&#xff0c;如果时57版本的&#xff0c;就用mysql57(已经改名的)和mysqld57 代替 mysql 和 mysqld 例如 mysql -u root -p …

Redis(十二) 持久化

文章目录 前言Redis实现数据的持久化Redis实现持久化的策略RDB手动触发RDB持久化操作自动触发RDB持久化操作 AOFAOF重写机制 前言 众所周知&#xff0c;Redis 操作数据都是在内存上操作的&#xff0c;而我们都知道内存是易失的&#xff0c;服务器重启或者主机掉电都会导致内存…

面试八股之MySQL篇4——事务篇

&#x1f308;hello&#xff0c;你好鸭&#xff0c;我是Ethan&#xff0c;一名不断学习的码农&#xff0c;很高兴你能来阅读。 ✔️目前博客主要更新Java系列、项目案例、计算机必学四件套等。 &#x1f3c3;人生之义&#xff0c;在于追求&#xff0c;不在成败&#xff0c;勤通…

生命线上的高效传递:了解下医院内、外网文件交互方式的革新之路

在医院的日常运营中&#xff0c;普遍采用内外网隔离的建设方式。内网集信息管理、通讯协作、资源共享、业务流程管理于一身&#xff0c;承载了医院的医疗核心业务&#xff0c;如HIS&#xff08;医院信息系统&#xff09;、LIS&#xff08;实验室信息系统&#xff09;、EMR&…

如何灵活运用keil工具进行问题分析(1)— 解决日常程序卡死问题

前言 &#xff08;1&#xff09;如果有嵌入式企业需要招聘湖南区域日常实习生&#xff0c;任何区域的暑假Linux驱动实习岗位&#xff0c;可C站直接私聊&#xff0c;或者邮件&#xff1a;zhangyixu02gmail.com&#xff0c;此消息至2025年1月1日前均有效 &#xff08;2&#xff0…

山脉数组的峰顶索引 ---- 二分查找

题目链接 题目: 分析: 我们很明显, 可以从峰值位置将数组分成两段, 具有"二段性", 所以可以用二分查找因为arr是山峰数组, 不存在相等的情况如果arr[mid] > arr[mid 1], 说明mid的位置可能是峰值, 移动right mid如果arr[mid] < arr[mid 1], 说明mid的位置…