Qt学习之路(14): 状态栏

Qt之菜单栏、工具栏、状态栏介绍及工具栏QAction的动态增删显示实现方式 阅读详情
有段时间没有写过博客了。假期去上海旅游,所以一直没有能够上网。现在又来到这里,开始新的篇章吧!
 
今天的内容主要还是继续完善前面的那个程序。我们要为我们的程序加上一个状态栏。
 
状态栏位于主窗口的最下方,提供一个显示工具提示等信息的地方。一般地,当窗口不是最大化的时候,状态栏的右下角会有一个可以调节大小的控制点;当窗口最大化的时候,这个控制点会自动消失。Qt提供了一个QStatusBar类来实现状态栏。
 
Qt具有一个相当成熟的GUI框架的实现——这一点感觉比Swing要强一些——Qt似乎对GUI的开发做了很多设计,比如QMainWindow类里面就有一个statusBar()函数,用于实现状态栏的调用。类似menuBar()函数,如果不存在状态栏,该函数会自动创建一个,如果已经创建则会返回这个状态栏的指针。如果你要替换掉已经存在的状态栏,需要使用QMainWindow的setStatusBar()函数。
 
在Qt里面,状态栏显示的信息有三种类型:临时信息、一般信息和永久信息。其中,临时信息指临时显示的信息,比如QAction的提示等,也可以设置自己的临时信息,比如程序启动之后显示Ready,一段时间后自动消失——这个功能可以使用QStatusBar的showMessage()函数来实现;一般信息可以用来显示页码之类的;永久信息是不会消失的信息,比如可以在状态栏提示用户Caps Lock键被按下之类。
 
QStatusBar继承自QWidget,因此它可以添加其他的QWidget。下面我们在QStatusBar上添加一个QLabel。
 
首先在class的声明中添加一个私有的QLabel属性:
 
private: 
        QAction *openAction; 
        QLabel *msgLabel;
 
然后在其构造函数中添加:
 
        msgLabel =  new QLabel; 
        msgLabel->setMinimumSize(msgLabel->sizeHint()); 
        msgLabel->setAlignment(Qt::AlignHCenter); 
 
        statusBar()->addWidget(msgLabel);
 
这里,第一行创建一个QLabel的对象,然后设置最小大小为其本身的建议大小——注意,这样设置之后,这个最小大小可能是变化的——最后设置显示规则是水平居中(HCenter)。最后一行使用statusBar()函数将这个label添加到状态栏。编译运行,将鼠标移动到工具条或者菜单的QAction上,状态栏就会有相应的提示:
 
 
看起来是不是很方便?只是,我们很快发现一个问题:当没有任何提示时,状态栏会有一个短短的竖线:
 
 
这是什么呢?其实,这是QLabel的边框。当没有内容显示时,QLabel只显示出自己的一个边框。但是,很多情况下我们并不希望有这条竖线,于是,我们对statusBar()进行如下设置:
 
statusBar()->setStyleSheet(QString( "QStatusBar::item{border: 0px}"));
 
这里先不去深究这句代码是什么意思,简单来说,就是把QStatusBar的子组件的border设置为0,也就是没有边框。现在再编译试试吧!那个短线消失了!
 
QStatusBar右下角的大小控制点可以通过setSizeGripEnabled()函数来 设置是否存在,详情参见API文档。
 
好了,现在,我们的状态栏已经初步完成了。由于QStatusBar可以添加多个QWidget,因此,我们可以构建出很复杂的状态栏。

本文出自 “豆子空间” 博客,请务必保留此出处http://devbean.blog.51cto.com/448512/210947

【Qt】Qt框架下的用户界面构建:工具栏与状态栏详解 在现代软件开发中,用户界面的设计对于提升用户体验至关重要。Qt框架作为跨平台的应用程序开发工具,提供了一套丰富的控件和功能,使得开发者能够快速构建功能强大且用户友好的界面。本文将详细介绍Qt中工具栏和状态栏的创建与使用,帮助开发者更好地理解和利用这些界面元素,以构建更加专业和高效的应用程序。本文详细介绍了Qt框架中工具栏和状态栏的创建、配置以及使用。 阅读详情

相关推荐

Qt 之路 (14)—状态栏

今天的内容主要还是继续完善前面的那个程序。我们要为我们的程序加上一个状态栏。 状态栏位于主窗口的最下方,提供一个显示工具提示等信息的地方。一般地,当窗口不是最大化的时候,状态栏的右下角会有一个可以调节大小的控制点;当窗口最大化的时候,这个控制点会自动消失。Qt提供了一个QStatusBar类来实现状态栏。 Qt具有一个相当成熟的GUI框架的实现——这一点感觉比Swing要强一些——Qt似乎

时间在哪 成就就在哪 1772

Qt 第29课、主窗口中的状态栏

1、主窗口中的状态栏 状态栏的概念和意义 — 状态栏是应用程序中输出简要信息的区域 — 状态栏一般位于主窗口的最底部 — 状态栏的消息类型  实时消息:如(当前程序状态)  永久消息:如(程序版本号,机构名称)  进度消息:如(进度条提示,百分比提示) 在 Qt 中提供与状态栏相关的类组件 在 Qt 主窗口中创建状态栏 Qt 状态栏的设计原则 — 左边的区域用于输出实时消息 — 右边的区域用...

大大怪将军的博客 2245

Qt主窗口 之:状态栏(QStatusBar)

在这个示例中,我们创建了三个永久部件(三个QLabel)和三个临时部件(三个QLineEdit),并将它们添加到状态栏中。参数text是要显示的消息文本,timeout是消息显示的超时时间,默认为0,表示消息将一直显示直到被清除或覆盖。参数index是插入位置的索引,widget是要插入的QWidget对象。返回状态栏中addWidget()和insertWidget()方法添加的QWidget对象的数量。启用或禁用状态栏控件的大小调整功能。公有槽函数,用于返回状态栏控件的大小调整功能是否启用的布尔值。

zxf347085420的博客 2103

Qt开发-主窗口中的状态栏

(4)、addPermanentWidget在状态栏右半部分添加组件。(2)、QStatusBar是Qt中创建状态栏组件的类。(5)、QStatusBar可以定制出各种形式的状态栏。(3)、addWidget在状态栏的左半部分添加组件。(4)、QStatusBar有自己内置的设计原则。(1)、状态栏是应用程序中输出简要信息的区域。(1)、状态栏是应用程序中输出简要信息的区域。(2)、状态栏一般位于主窗口的最底部。(1)、左边区域用于输出实时消息。(3)、状态栏中的消息类型。4、Qt状态栏的设计原则。

hw5230的博客 2787

qt学习啊

/手写// .hprivate:// .cpp});});});

weixin_54687499的博客 1800

小鹏P7车载以太网诊断实战:从OBD口定义到DoIP协议验证

本文详细解析了小鹏P7车载以太网诊断的实战过程。从OBD接口的针脚定义入手,依据ISO13400标准,确认了以太网线对位置,并指导制作专用的RJ45转OBD线束。通过搭建测试环境,使用Ping、端口扫描及Wireshark抓包,最终成功验证了车辆对DoIP协议的支持,为基于以太网的高速诊断与刷写提供了完整的技术路径。

CAT789的专栏 522

【QT】QT 窗口(菜单栏、工具栏、状态栏、浮动窗口、对话框)

Qt 窗口是通过 QMainWindow类来实现的。 QMainWindow 是一个为用户提供主窗口程序的类,继承自 QWidget 类,并且提供了⼀个预定义的布局。QMainWindow 包含一个菜单栏(Menu Bar)、多个工具栏(Tool Bars)、多个浮动窗口(铆接部件)(Dock Widgets)、⼀个状态栏(Status Bar)和一个中心部件(Central Widget),它是许多应用程序的基础,如文本编辑器,图片编辑器等。如下图为 QMainwindow 中各组件所处的位置: Qt 中

Elena's Blog 7278

开源代码分享(29)-基于拉丁超立方抽样的风光场景生成和削减

作为分层抽样方法的一 种,拉丁超立方抽样具有良好的抽样精度和效率[14]。本文使用多场景方法来描述可再生能源(风电、光伏)的不确定性。以风电功率为例,首先假定风电功率服从正态分布 N(μ, δ 2 ),μ 为预测值的期望值,δ 为其波动的百分比。接着,采用拉丁超立方抽样[21]生成大量服从概率分布约束的风电出力场景,并采用考虑 Kantorovich 距离[22]的场景削减技术处理该场景,进行场景削减。最后,导出具有相应概率的削减之后的场景。

配电网和matlab的博客 923

Qt学习之路(14):状态栏

状态显示的信息是通过QLabel来实现的。 QLabel *msgLabel; msgLabel = new QLabel; statusBar()->addWidget(msgLabel);

Ftworld21的专栏 680

vivado安装空间与依赖要求:入门须知要点

准备安装Vivado时,需重点关注系统空间和依赖环境的配置。结合vivado安装教程,详细说明最低磁盘要求、内存配置及操作系统兼容性,帮助新手快速搭建开发环境,避免常见安装失败问题。

weixin_34725745的博客 1573

MetaGPT核心模块:Data Interpreter 上手实战 - 数据分析和可视化(附运行过程详解)

上篇文章我们详细解读了 DataInterpreter 的实现原理(论文),本文将开始上手实操,开始写代码用上 DataInterpreter。从最简单的例子开始,先给大家看下其运行过程,看下DataInterpreter是如何自动拆解任务,完成任务的,帮助大家构建直观认识。

同学小张的博客 371

QT for android /IOS 之设置系统状态栏透明与半透明

记录如何设置关于QT for android透明状态栏与全屏: 大家应该也有类似于我这样的困扰,用QT开发制作手机端软件时,状态栏与界面的分割线很是突兀,分裂感很强看着也不美观,如下图:而众所周知,大部分的软件界面会是与状态栏融合为一体,下面是设置透明状态栏、半透明的方法: 点击完成后会在项目中生成一个名为"android"的文件夹 如下图所示 (修改图标、软件名称以及版本号在此处修改即可): 找到下图地方,此处标的即是安卓系统入口文件的所在位置,我们

2301_77093965的博客 1309

抖音 webmssdk 签名算法解析:X-Dynosaur / X-Gnarly / X-Bogus 生成原理

它只依赖设备指纹/环境编码与随机数,与 query 内容无关,因此可以独立于 Dynosaur/Gnarly 生成。

猫敷雪 197

qt android 浮动窗口,QT+ 状态栏+核心控件+浮动窗口

#include "mainwindow.h"#include #include #include#include //浮动窗口所需的头文件MainWindow::MainWindow(QWidget *parent): QMainWindow(parent){this ->setFixedSize(,);//状态栏QStatusBar *statusBar1 = statusBar();...

weixin_31473773的博客 773

拼多多笔试真题-多多送快递(C++/Py/Java /Js/Go)

拼多多技术岗笔试 8月2号真题,拼多多笔试第三题【多多送快递】,提供详细思路讲解以及Java、C++、Python、Go、JavaScript多语言代码实现。拼多多笔试真题【多多送快递】多语言题解。

qq_45776114的博客 292

PINNACLE:PINN自适应配点与实验点选择算法

PINNACLE算法通过引入动态权重机制,实现了PINN训练点选择的自适应优化。该算法基于对训练过程中不同区域学习需求变化的深入理解,设计了平滑过渡的权重函数,确保了模型在不同训练阶段能够优先学习最需要的区域。理论分析和实验结果均表明,PINNACLE不仅能够保证收敛性,而且能够显著提高PINN的性能。这一算法为物理信息神经网络的应用提供了重要支持,尤其适用于复杂PDE问题的求解。

VectorShift的博客 1136

QT5.14.2自带Examples:Application

Application 示例功能概述 主要功能 Application 示例展示了如何实现标准的GUI应用程序(包括:菜单,工具栏,状态栏)。该示例本身是一个基于QPlainTextEdit的简单的文字编辑器程序。 几乎所有的代码都在MainWindow类中完成,它的基类为QMainWindow。QMainWindow为需要菜单、工具栏、停靠窗口、状态栏的窗口提供了一个框架。本示例在菜单栏中提供了File、Edit和Help入口。点开后分别可以看见下列弹出菜单: 状态栏在主窗口的底端,显示鼠标指向的菜单

阿西拜的博客 1640

Qt入门教程【环境搭建篇】Qt6+Mingw+QMake+QtCreator

Qt Windows平台安装

小鱼酱的博客 2万+
上一篇: Qt学习之路(13): 菜单和工具条(续)
下一篇: Qt学习之路(15): Qt标准对话框之QFileDialog
flowingFire2012
博客等级 码龄14年 6粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值