QStatusBar Class
QStatusBar 类提供了一个适合显示状态信息的水平条。更多
头文件: | #include <QStatusBar> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
继承: | QWidget |
- 所有成员的列表,包括继承成员
- QStatusBar 属于Help System(帮助系统)。
属性
- sizeGripEnabled : bool
公共功能
QStatusBar(QWidget *parent = nullptr) | |
virtual | ~QStatusBar() |
void | addPermanentWidget(QWidget *widget, int stretch = 0) |
void | addWidget(QWidget *widget, int stretch = 0) |
QString | currentMessage() const |
int | insertPermanentWidget(int index, QWidget *widget, int stretch = 0) |
int | insertWidget(int index, QWidget *widget, int stretch = 0) |
bool | isSizeGripEnabled() const |
void | removeWidget(QWidget *widget) |
void | setSizeGripEnabled(bool) |
公共插槽
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 |
详细说明
每个状态指示器可分为三类:
- 临时- 短暂占据状态栏的大部分区域。用于解释工具提示文本或菜单条目等。
- 正常- 占据状态栏的一部分,可能会被临时信息隐藏。例如,用于显示文字处理器中的页码和行号。
- 永久- 永远不会隐藏。用于重要的模式指示,例如,某些应用程序会在状态栏中显示大写锁定指示符。
QStatusBar 可让您显示所有三种类型的指示符。
通常情况下,对状态栏功能的请求与QMainWindow 对象有关。QMainWindow 提供了一个主应用程序窗口,其中有菜单栏、工具栏、停靠窗口小部件以及围绕一个大的中心窗口小部件的状态栏。可以使用QMainWindow::statusBar() 函数检索状态栏,也可以使用QMainWindow::setStatusBar() 函数替换状态栏。
使用showMessage() 插槽显示临时信息:
statusBar()->showMessage(tr("Ready"));
要删除临时信息,请使用clearMessage() 槽,或在调用showMessage() 时设置一个时间限制。例如
statusBar()->showMessage(tr("Ready"), 2000);
使用currentMessage() 函数获取当前显示的临时信息。QStatusBar 类还提供messageChanged() 信号,每当临时状态信息发生变化时,该信号就会发出。
正常信息和永久信息的显示方法是创建一个小部件(QLabel 、QProgressBar 或甚至QToolButton ),然后使用addWidget() 或addPermanentWidget() 函数将其添加到状态栏中。使用removeWidget() 函数可从状态栏中删除此类信息。
statusBar()->addWidget(new MyReadWriteIndication);
默认情况下,QStatusBar 在右下角提供了一个QSizeGrip 。您可以使用setSizeGripEnabled() 函数禁用它。使用isSizeGripEnabled() 函数确定大小抓手的当前状态。
另请参阅 QMainWindow 和QStatusTipEvent 。
属性文档
sizeGripEnabled : bool
该属性用于保存状态栏右下角的QSizeGrip 是否启用。
默认情况下启用大小抓取。
访问函数:
bool | isSizeGripEnabled() const |
void | setSizeGripEnabled(bool) |
成员函数文档
[explicit]
QStatusBar::QStatusBar(QWidget *parent = nullptr)
构造一个状态栏,该状态栏的大小为抓取值,给定值为parent 。
另请参见 setSizeGripEnabled().
[virtual noexcept]
QStatusBar::~QStatusBar()
销毁此状态栏,并释放已分配的资源和子部件。
void QStatusBar::addPermanentWidget(QWidget *widget, int stretch = 0)
将给定的widget 永久添加到该状态栏,如果该窗口小部件还不是该QStatusBar 对象的子窗口小部件,则将该窗口小部件重定向。stretch 参数用于在状态栏增大和缩小时为给定的widget 计算合适的尺寸。默认拉伸系数为 0,即给 widget 留出最小空间。
永久表示该窗口小部件不会被临时信息遮挡。它位于状态栏的最右侧。
另请参阅 insertPermanentWidget()、removeWidget() 和addWidget()。
void QStatusBar::addWidget(QWidget *widget, int stretch = 0)
将给定的widget 添加到该状态栏,如果该窗口小部件还不是该QStatusBar 对象的子窗口小部件,则对该窗口小部件进行再父系化。stretch 参数用于在状态栏增大或缩小时为给定的widget 计算合适的尺寸。默认拉伸系数为 0,即给 widget 留出最小空间。
该窗口小部件位于第一个永久窗口小部件(参见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 index, QWidget *widget, int stretch = 0)
在给定的index 处永久插入给定的widget 到此状态栏,如果该窗口小部件还不是QStatusBar 对象的子窗口小部件,则对其进行再父系化。如果index 超出范围,则会附加该窗口小部件(在这种情况下,返回的是窗口小部件的实际索引)。
stretch 参数用于在状态栏增大和缩小时为给定的widget 计算合适的尺寸。默认拉伸系数为 0,即给 widget 留出最小空间。
永久表示该窗口小部件不会被临时信息遮挡。它位于状态栏的最右侧。
另请参阅 addPermanentWidget()、removeWidget() 和addWidget()。
int QStatusBar::insertWidget(int index, QWidget *widget, int stretch = 0)
在给定的index 处插入给定的widget 到此状态栏,如果该窗口小部件还不是QStatusBar 对象的子窗口小部件,则对其进行再父系化。如果index 超出范围,则会附加该窗口小部件(在这种情况下,返回的是窗口小部件的实际索引)。
stretch 参数用于在状态栏增大和缩小时为给定的widget 计算合适的尺寸。默认拉伸系数为 0,即给 widget 留出最小空间。
该窗口小部件位于第一个永久窗口小部件(参见addPermanentWidget() )的最左侧,可能会被临时信息遮挡。
另请参阅 addWidget()、removeWidget() 和addPermanentWidget()。
[signal]
void QStatusBar::messageChanged(const QString &message)
每当临时状态信息发生变化时,就会发出该信号。新的临时信息通过message 参数传递,当信息被删除时,该参数为空串。
另请参阅 showMessage() 和clearMessage()。
[override virtual protected]
void QStatusBar::paintEvent(QPaintEvent *event)
重实现:QWidget::paintEvent(QPaintEvent *event).
显示临时信息(如果合适),以响应油漆event 。
[protected]
void QStatusBar::reformat()
更改状态栏的外观,以反映项目的变化。
特殊子类可能需要此功能,但几何图形管理通常会处理任何必要的重新排列。
void QStatusBar::removeWidget(QWidget *widget)
从状态栏中删除指定的widget 。
另请参阅 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 的timeout 并不足以显示permanent message 。
另请参阅 messageChanged()、currentMessage() 和clearMessage()。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.