QStatusBar 类

QStatusBar 类提供了一条适合展示状态信息的水平栏。 更多...

头文件 #include <QStatusBar>
CMakefind_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmakeQT += widgets
继承自 QWidget

属性

公共函数

QStatusBar(QWidget *parent = nullptr)
virtual~QStatusBar()
voidaddPermanentWidget(QWidget *widget, int stretch = 0)
voidaddWidget(QWidget *widget, int stretch = 0)
QStringcurrentMessage() const
intinsertPermanentWidget(int index, QWidget *widget, int stretch = 0)
intinsertWidget(int index, QWidget *widget, int stretch = 0)
boolisSizeGripEnabled() const
voidremoveWidget(QWidget *widget)
voidsetSizeGripEnabled(bool)

公共槽

voidclearMessage()
voidshowMessage(const QString &message, int timeout = 0)

信号

voidmessageChanged(const QString &message)

保护函数

voidhideOrShow()
voidreformat()

重新实现保护函数

virtual boolevent(QEvent *e) override
virtual voidpaintEvent(QPaintEvent *event) override
virtual voidresizeEvent(QResizeEvent *e) override
virtual voidshowEvent(QShowEvent *) override

详细描述

每个状态指示器属于以下三个类别之一

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

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

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

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

statusBar()->showMessage(tr("Ready"));

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

statusBar()->showMessage(tr("Ready"), 2000);

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

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

statusBar()->addWidget(new MyReadWriteIndication);

默认情况下,QStatusBar 在状态栏的右下角提供一个 QSizeGrip。您可以使用 setSizeGripEnabled() 函数禁用它。使用 isSizeGripEnabled() 函数来确定大小控制柄的当前状态。

A status bar shown in the Fusion widget style

另请参阅QMainWindowQStatusTipEvent

属性文档

sizeGripEnabled : bool

此属性表示状态栏右下角的 QSizeGrip 是否启用

默认启用大小控制柄。

访问函数

boolisSizeGripEnabled() const
voidsetSizeGripEnabled(bool)

成员函数文档

[明确] QStatusBar::QStatusBar(QWidget *parent = nullptr)

使用给定 parent 构造一个具有大小控制柄的状态栏。

另请参阅setSizeGripEnabled

[虚函数 noexcept] QStatusBar::~QStatusBar()

销毁此状态栏并释放任何分配的资源及其子部件。

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

将指定的 widget 永久添加到状态栏中,如果该部件还不是此 QStatusBar 对象的子项,会将其重置为子项。使用 stretch 参数来计算状态栏增长和缩小时给定 widget 的合适大小。默认缩放因子为 0,即给部件最小的空间。

永久性意味着小部件可能不会被临时消息遮挡。它位于状态栏的右侧。

见亦 insertPermanentWidget(),removeWidget(),以及 addWidget()。

void QStatusBar::addWidget(QWidget *widgetint stretch = 0)

将指定的widget添加到状态栏中,如果该小部件还不是状态栏对象QStatusBar的子对象时,将其重新父化。参数<浓郁>stretch用于在状态栏增长和缩小过程中为指定的<浓郁>widget计算一个合适的大小。默认的扩展因子是0,即给予小部件最小的空间。

小部件位于第一个永久小部件(见addPermanentWidget())的左侧,可能被临时消息遮挡。

见亦 insertWidget(),removeWidget(),以及 addPermanentWidget()。

[slot] void QStatusBar::clearMessage()

移除正在显示的任何临时消息。

见亦 currentMessage(),showMessage(),以及removeWidget()。

QString QStatusBar::currentMessage() const

返回当前显示的临时消息,如果没有任何此类消息,则返回空字符串。

见亦 showMessage()。

[override virtual protected] bool QStatusBar::event(QEvent *e)

重新实现: QWidget::event(QEvent *event)。

[protected] void QStatusBar::hideOrShow()

确保正确的工具是可见的。

showMessage()和clearMessage()函数使用。

int QStatusBar::insertPermanentWidget(int indexQWidget *widgetint stretch = 0)

将给定的小部件永久地插入状态栏的给定索引,如果小部件还不是状态栏对象QStatusBar的子对象时,将其重新父化。如果索引超出范围,则将小部件附加(在这种情况下,返回的是小部件的实际索引)。

参数<浓郁>stretch用于在状态栏增长和缩小过程中为给定的小部件计算一个合适的大小。默认的扩展因子是0,即给予小部件最小的空间。

永久性意味着小部件可能不会被临时消息遮挡。它位于状态栏的右侧。

见亦 addPermanentWidget(),removeWidget(),以及:addWidget()。

int QStatusBar::insertWidget(int indexQWidget *widgetint stretch = 0)

将指定的 widget 插入到指定的 索引 处,如果该 widget 还不是本 QStatusBar 对象的子对象,则会重新将 widget 作为子对象。如果 索引 在范围之外,则将 widget 添加到末尾(在这种情况下返回的实际上是 widget 的实际索引)。

参数<浓郁>stretch用于在状态栏增长和缩小过程中为给定的小部件计算一个合适的大小。默认的扩展因子是0,即给予小部件最小的空间。

小部件位于第一个永久小部件(见addPermanentWidget())的左侧,可能被临时消息遮挡。

另请参阅:addWidget(),removeWidget() 和 addPermanentWidget()。

[signal] void QStatusBar::messageChanged(const QString &message)

每次临时状态消息改变时,都会发射此信号。新的临时消息作为参数传入 message,当消息被移除时,message 是空字符串。

另请参阅:showMessage() 和 clearMessage()。

[override virtual protected] void QStatusBar::paintEvent(QPaintEvent *event)

重实现了:QWidget::paintEvent(QPaintEvent *event)。

根据绘制事件,如果适当,显示临时消息。

[protected] void QStatusBar::reformat()

根据项目更改更改状态栏的外观。

特殊子类可能需要此函数,但通常几何管理会负责任何必要的重新排列。

void QStatusBar::removeWidget(QWidget *widget)

从状态栏中移除指定的 widget

注意:此函数不会删除 widget,而是将其 隐藏。要再次添加 widget,必须同时调用 addWidgetshow() 函数。

另请参阅:addWidget(),addPermanentWidget() 和 clearMessage()。

[override virtual protected] void QStatusBar::resizeEvent(QResizeEvent *e)

重实现了:QWidget::resizeEvent(QResizeEvent *event)。

[override virtual protected] void QStatusBar::showEvent(QShowEvent *)

重实现了:QWidget::showEvent(QShowEvent *event)。

[slot] void QStatusBar::showMessage(const QString &message, int timeout = 0)

在指定的毫秒数 (timeout) 内隐藏正常状态提示并显示给定的 message。如果 timeout 为 0(默认值),则 message 将保持显示,直到调用 clearMessage() 信号或再次调用 showMessage() 信号以更改消息。

请注意,调用了showMessage()来显示工具提示文本的临时解释,因此传递一个超时为0是不够的,无法显示一个永久的消息

另请参阅messageChanged(),currentMessage()和clearMessage()。

© 2024 Qt公司有限公司。本文档中包含的文档贡献者是各自所有者的版权。提供的文档根据由自由软件基金会发布的GNU自由文档许可协议(版本1.3)的条款许可。Qt及其相关徽标是芬兰及/或其他国家Qt公司在世界范围内的商标。所有其他商标都是其各自所有者的财产。