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

基于扩展卡尔曼滤波(EKF)结合到达时间(TDOA)、到达频率(FDOA)实现多无人机无源定位,MATLAB代码

该程序实现了一种结合到达时间差(TDOA)和到达频率差(FDOA)技术的多无人机定位方法,利用扩展卡尔曼滤波(EKF)对单一目标进行定位。程序通过模拟多无人机的运动及其与目标的相对位置,估计目标的状态(位置和速度)。

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 1266

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

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

Elena's Blog 7278

无需云服务器:飞牛云NAS+Docker搭建本地WordPress站点全球访问

在数字化浪潮中,网站搭建已成为个人和企业在推广自身品牌与业务的首要选择。飞牛云新推出的fnOS,这款集多功能于一身的nas系统,以其卓越的性能和灵活性,成为理想的本地网站部署平台。本文将带你一探如何在飞牛云NAS上通过Docker部署WordPress,并利用cpolar实现全球访问。

LT15171009269的博客 6528

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

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

Ftworld21的专栏 680

IEEE S&P 2026 大模型安全论文整理

本文梳理了 IEEE S&P 2026(第47届 IEEE 安全与隐私研讨会)中与 LLM Safety 相关的论文,涵盖大模型越狱攻击、防御与对齐、隐私保护、RAG 安全、多模态大模型安全、智能体安全、图-LLM 安全、工具链安全及生成式 AI 安全与隐私等方向。

CSPhD-winston的博客 1334

手把手教你玩转CPU微架构专栏--​​​​1.5 工具准备:用Gem5模拟器“看见”微架构(安装、基础仿真命令)​

本文介绍了如何使用Gem5模拟器进行微架构学习和实验。Gem5是一款支持多种指令集的开源微架构模拟器,可模拟CPU流水线、缓存等核心组件。文章详细说明了在Ubuntu和macOS上安装Gem5的步骤,包括依赖安装、源码编译和验证方法。通过一个简单的加法指令测试程序,演示了如何运行基础仿真并解读输出日志,包括指令执行流程和性能统计数据。此外,还提供了两个实战实验:修改L1缓存大小和观察分支预测失败,帮助读者理解微架构参数对性能的影响。最后指出Gem5是学习微架构的"显微镜",能直观观察指令

xiaoheshang_123的博客 140

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

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

2301_77093965的博客 1309

Codex 100个真实案例 - 用AI自动生成API测试用例(接口测试全覆盖)

API 测试是保障后端质量的关键环节,但手写测试用例既枯燥又容易遗漏。本案例将展示如何用 Codex 从 Swagger/OpenAPI 规范文档自动生成 pytest 测试用例——包括正常流程测试、边界值测试、异常参数测试、性能压力测试,还能自动生成 Mock 数据和精美的 HTML 测试报告。全程自然语言驱动,让 API 测试覆盖率从 0 飙到 90%+!

yueyeguzhuo的专栏 270

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

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

weixin_31473773的博客 773

【头歌】链栈的基本操作及应用

另外,在算法的开始和结束时,栈都应该是空的,所以匹配到最后还要判断栈是否为空,若空,则说明匹配成功,返回1。其中表达式只包含三种括号,花括号{}、中括号[]、圆括号(),即它仅由 (、)、[、]、{、}六个字符组成。预期输出: 栈中元素依次为:12 47 5 8 6 92 45 63 75 38 4 29 弹出的栈顶元素 e=29 栈空否:0(1:空 0:否) 栈顶元素 e=4 栈的长度为11 清空栈后,栈空否:1(1:空 0:否)// 若栈不空,则用e返回S的栈顶元素,并返回OK;

qq_39977056的博客 4383

R语言LASSO回归作图为什么X轴使用-log(λ)而不是log(λ),如何转化为log(λ)?

🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!

**My Coding Family** 1015

QT5.14.2自带Examples:Application

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

阿西拜的博客 1640

国债期货的日线趋势跟踪策略实现(基于backtrader框架)

通过backtrader框架,我们可以轻松地实现国债期货的日线趋势跟踪策略,并进行回测和验证。通过这种策略,我们可以尝试捕捉国债期货价格的短期趋势,并根据趋势的方向进行交易决策。backtrader提供了许多内置的指标、订单类型和其他功能,可以帮助你进一步优化和改进你的策略。它提供了丰富的工具和功能,使我们能够快速实现和验证我们的交易想法。方法中,我们根据当前价格和前一天的价格判断趋势的方向,并根据趋势的变化进行买入或卖出操作。然后,我们设置了初始资金和交易手续费,并将我们定义的策略。来跟踪每日的收盘价。

NisyPhilosophy的博客 404
上一篇: 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、付费专栏及课程。

余额充值