文章目录

  • 详细说明
  • 属性
  • 公共函数
    • 构造和析构
    • 属性相关
    • 增删
    • 当前信息
  • 公共槽
  • 信号
  • 受保护的函数
  • 重写的受保护的函数
  • 演示代码

QStatusBar Class

QStatusBar类提供了一个适合于显示状态信息的水平条。

Header #include < QStatusBar >
qmake QT += widgets
Inherits QWidget
Inherited By

详细说明

每个状态指示分为三类:

  • 临时-短暂占据状态栏的大部分。例如,用于解释工具提示文本或菜单项。
  • 正常-占据部分状态栏,可能被临时消息隐藏。例如,用于在字处理器中显示页码和行号。
  • 永久的-永远不会隐藏。用于重要的模式指示,例如,某些应用程序在状态栏中放置大写锁定指示器。

QStatusBar允许您显示所有三种类型的指示器。

通常,对状态栏功能的请求与QMainWindow对象相关。QMainWindow提供了一个主应用程序窗口,其中有一个菜单栏、工具栏、停靠小部件和一个围绕在大型中心小部件周围的状态栏。可以使用QMainWindow::statusBar() 函数检索状态栏,并使用QMainWindow::setStatusBar() 函数替换状态栏。

使用showMessage() 槽显示临时消息:

 void MainWindow::createStatusBar(){statusBar()->showMessage(tr("Ready"));}

要删除临时消息,请使用clearMessage() 槽,或在调用showMessage() 时设置时间限制。例如:

 void MainWindow::print(){#if defined(QT_PRINTSUPPORT_LIB) && QT_CONFIG(printdialog)QTextDocument *document = textEdit->document();QPrinter printer;QPrintDialog dlg(&printer, this);if (dlg.exec() != QDialog::Accepted) {return;}document->print(&printer);statusBar()->showMessage(tr("Ready"), 2000);#endif}

使用currentMessage() 函数检索当前显示的临时消息。QStatusBar类还提供messageChanged() 信号,该信号在临时状态消息更改时发出。

通过创建一个小部件(QLabel、QProgressBar甚至QToolButton),然后使用addWidget() 或addPermanentWidget() 函数将其添加到状态栏,可以显示普通和永久消息。使用removeWidget() 函数从状态栏中删除此类消息。

statusBar()->addWidget(new MyReadWriteIndication);

默认情况下,QStatusBar在右下角提供QSizeGrip。可以使用setSizeGripeEnabled() 函数禁用它。使用isSizeGripEnabled() 函数确定尺寸夹点的当前状态。

属性

  • sizeGripEnabled : bool 状态栏右下角的QSizeGrip是否已启用
    默认情况下,“QSizeGrip”夹点处于启用状态。

    • QStatusBar(QWidget *parent = nullptr)
    • virtual ~QStatusBar()

公共函数

构造和析构

  • QStatusBar(QWidget *parent = nullptr)
  • virtual ~QStatusBar()

属性相关

  • bool isSizeGripEnabled() const
    void setSizeGripEnabled(bool)

增删

  • void addPermanentWidget(QWidget *widget, int stretch = 0)

    将给定的小部件永久添加到此状态栏中,如果该小部件不是该QStatusBar对象的子对象,则重新分配该小部件

    stretch参数用于在状态栏增长和收缩时计算给定小部件的合适大小。默认的拉伸因子是0,即给小部件一个最小的空间。

    永久意味着小部件可能不会被临时消息掩盖。它位于状态栏的最右边

  • int insertPermanentWidget(int index, QWidget *widget, int stretch = 0)

  • void addWidget(QWidget *widget, int stretch = 0)

  • int insertWidget(int index, QWidget *widget, int stretch = 0)
    小部件位于第一个永久小部件的最左侧(请参见addPermanentWidget()),可能会被临时消息遮挡。

  • void removeWidget(QWidget *widget)

当前信息

  • QString currentMessage() const

公共槽

  • void clearMessage()
  • void showMessage(const QString &message, int timeout = 0)

信号

  • void messageChanged(const QString &message)

受保护的函数

  • void hideOrShow()
  • void reformat()

重写的受保护的函数

  • virtual bool event(QEvent *e) override
  • virtual void paintEvent(QPaintEvent *event) override
  • virtual void resizeEvent(QResizeEvent *e) override
  • virtual void showEvent(QShowEvent *) override

演示代码

int main(int argc, char *argv[])
{QApplication a(argc, argv);a.setApplicationName ("QMainWindow");QMainWindow w;auto *label = new QLabel("PermanentWidget",&w);label->setFrameStyle (QFrame::Panel | QFrame::Sunken );label->setFrameStyle (QFrame::Panel | QFrame::Sunken );w.statusBar ()->addPermanentWidget (label);label = new QLabel("addWidget()",&w);label->setFrameStyle (QFrame::Panel | QFrame::Sunken );w.statusBar ()->addWidget (label);w.statusBar ()->showMessage ("QMainWindow",1000);w.resize (350,200);w.show();return a.exec();
}

主窗口(06):【类】QStatusBar [官翻]相关推荐

  1. QSettings 类【官翻】

    文章目录 详述 基本用法 QVariant和GUI类型 Section 和 Key 的语法 后备机制 恢复GUI应用程序的状态 同时从多个线程或进程访问设置 特定于平台的说明 应用程序设置的存储位置 ...

  2. Qt 线程(02):线程类【官翻】

    线程类 类名 简介 Concurrent Filter and Filter-Reduce Concurrent Map and Map-Reduce Concurrent Run QAtomicIn ...

  3. QFileInfo 类【官翻】

    文章目录 详述 性能问题 公共函数 创建及析构 目录 路径.文件名及后缀 时间信息 缓存 属性 类型 访问权限 比较 静态公用函数 相关的非成员 QFileInfo 类 QFileInfo类提供与系统 ...

  4. QFileDevice 类【官翻】

    文章目录 一.详述 二.公共类型 三.公共函数 四.重新实现的公共函数 五.重新实现受保护的函数 QFileDevice 类 QFileDevice类提供用于读取和写入打开文件的接口. Header: ...

  5. QStorageInfo 类【官翻】

    文章目录 详述 公共函数 静态公共函数 相关非成员 QStorageInfo 类 提供有关当前安装的存储和驱动器的信息. Header: #include < QStorageInfo > ...

  6. QFile 类【官翻】

    文章目录 详述 直接读取文件 使用流读取文件 信号 平台特定问题 公共类型 公共函数 重新实现的公共函数 静态公用函数 QFile 类 QFile类提供用于读取和写入文件的接口. Header: #i ...

  7. 在主窗口中增加绘图类控件时(以QPainter为例)时不显示内容的问题(不应该加addStretch)

    问题引出 假如我要实现以下GUI,包含一个主窗口,主窗口内又包含1个绘图类控件(QPainter中的QdrawText)和1个 单行文本框控件(QLineEdit). 期望效果图 开始实现的代码为: ...

  8. Qt应用程序主窗口之一:主窗口框架

    对于日常见到的应用程序而言,许多都是基于主窗口的,主窗口中包含了菜单栏.工具栏.状态栏和中心区域等.这一章会详细介绍主窗口的每一个部分,还会涉及资源管理.富文本处理.拖放操作和文档打印等相关内容.重点 ...

  9. Qt应用程序主窗口框架

    Qt 应用程序主窗口框架 1. Qt资源系统.菜单栏和工具栏 1.1 使用资源 1.2 编写代码方式添加菜单 1.3 菜单栏 1.4 工具栏 2. 中心部件 3. Dock部件 4. 状态栏 5. 例 ...

最新文章

  1. Python函数(2)
  2. 佐客牛排机器人餐厅_高大上!滕州这家餐厅竟然用机器人“跑堂”(图)
  3. IEEE 754——计算机中浮点数的表示方法
  4. 从《Java核心技术卷Ⅱ》看Java操作pdf的工具类itext
  5. 计算机的发展导致了计算思维的诞生,尔雅电子计算机的诞生(上)
  6. 有限元分析类毕业论文文献(推荐10篇)
  7. Java开发基础(四)——dbutils的使用
  8. SEO和SEM的区别是什么
  9. idea更新报错:master has no tracked branch
  10. stmt php,PHP mysqli_stmt_free_result() 函数用法及示例
  11. 经典人工智能及开发工具--不看会后悔!!
  12. 冬季送暖!实用围巾打法!(图)
  13. 未来教育1级计算机基础及ms,未来教育.全国计算机等级考试一本通一级计算机基础及MS Office应用...
  14. php 微信文章阅读量,微信阅读量
  15. C语言除法哪个是整除,c语言整除(c语言整除怎么表示)
  16. 【数据可视化应用】xarray 绘图可视化(五)-二进制GrADS气象数据处理(附代码)
  17. Python基础78 - 类和对象魔法方法
  18. S32DS 3.4 3.5颜色配色方案及代码自动补全提示
  19. Oracle数据库学习:PL/SQL(详解)
  20. 数据结构python版 答案_中国大学慕课答案大全_数据结构与算法Python版章节测试答案...

热门文章

  1. rar命令行解压zip文件提示不是 rar 压缩文件,没有可提取的文件的解决办法
  2. 恶意网页修改注册表的12种现象
  3. 拆分系统拆分盘盛出不穷,互助系统的延续走出新的路子,农场果园直销系统返利系统开始火了!
  4. Unity 简单联网游戏(双人五子棋)开发(二)
  5. 【面试资料】 Java中高级核心面试知识解析
  6. 大数据(5q)ClickHouse元数据
  7. pickle与.pkl文件
  8. java new 一个内部类_java内部类
  9. H5 通过exceljs,根据模板替换内容,导出xlsx文件
  10. eruda 移动端调试工具