成员函数
1)void setText(const QString &text)
设置状态栏的文本。参数text是要显示的消息文本。
2)QString text() const
返回当前状态栏的文本。
3)void showMessage(const QString &text, int timeout = 0)
在状态栏中显示消息,并在timeout毫秒后自动消失。参数text是要显示的消息文本,timeout是消息显示的超时时间,默认为0,表示消息将一直显示直到被清除或覆盖。
4)void clear()
清除当前状态栏的消息文本。
5)void addWidget(QWidget *widget)
将一个QWidget对象添加到状态栏中。参数widget是要添加的QWidget对象。
6)void insertWidget(int index, QWidget *widget)
将一个QWidget对象插入到状态栏中的指定位置。参数index是插入位置的索引,widget是要插入的QWidget对象。
7)int count() const
返回状态栏中addWidget()和insertWidget()方法添加的QWidget对象的数量。
8)QWidget *widget(int index) const
返回状态栏中指定位置的QWidget对象。参数index是查找位置的索引。
9)int indexOf(QWidget *widget) const
返回指定QWidget对象在状态栏中的索引位置。
10)void removeWidget(QWidget *widget)
从状态栏中移除指定的QWidget对象。参数widget是要移除的QWidget对象。
11)void setSizeGripEnabled(bool enable)
启用或禁用状态栏控件的大小调整功能。参数enable为true时启用,为false时禁用。
12)bool isSizeGripEnabled() const
返回状态栏控件的大小调整功能是否启用的布尔值。
13)void addWidget(QWidget *widget, int stretch = 0, bool permanent = FALSE)
公有槽函数,用于将QWidget对象添加到状态栏中,并可选择设置其扩展性和永久性。
14)void removeWidget(QWidget *widget)
公有槽函数,用于从状态栏中移除指定的QWidget对象。
15)void setSizeGripEnabled(bool enable)
公有槽函数,用于启用或禁用状态栏控件的大小调整功能
16)bool isSizeGripEnabled() const
公有槽函数,用于返回状态栏控件的大小调整功能是否启用的布尔值。
用法举例
#include <QApplication>
#include <QMainWindow>
#include <QStatusBar>
#include <QLabel>
#include <QLineEdit>
#include <QHBoxLayout>
#include <QVBoxLayout>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr)
: QMainWindow(parent)
{
// 创建状态栏
QStatusBar *statusBar = new QStatusBar(this);
setStatusBar(statusBar);
// 创建多个永久部件并添加到布局中
QVBoxLayout *vLayout = new QVBoxLayout;
QLabel *label1 = new QLabel("Permanent widget 1");
vLayout->addWidget(label1);
QLabel *label2 = new QLabel("Permanent widget 2");
vLayout->addWidget(label2);
QLabel *label3 = new QLabel("Permanent widget 3");
vLayout->addWidget(label3);
QWidget *permanentWidget = new QWidget;
permanentWidget->setLayout(vLayout);
statusBar->addWidget(permanentWidget, 1); // 第一个参数是部件的父对象,第二个参数是部件的扩展性(0表示不扩展)
// 创建多个临时部件并添加到布局中
QHBoxLayout *hLayout = new QHBoxLayout;
QLineEdit *lineEdit1 = new QLineEdit;
lineEdit1->setText("Temp widget 1");
hLayout->addWidget(lineEdit1);
QLineEdit *lineEdit2 = new QLineEdit;
lineEdit2->setText("Temp widget 2");
hLayout->addWidget(lineEdit2);
QLineEdit *lineEdit3 = new QLineEdit;
lineEdit3->setText("Temp widget 3");
hLayout->addWidget(lineEdit3);
QWidget *temporaryWidget = new QWidget;
temporaryWidget->setLayout(hLayout);
statusBar->addWidget(temporaryWidget); // 没有扩展性参数,默认为0
}
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MainWindow window;
window.show();
return app.exec();
}
这个示例创建了一个自定义的MainWindow类,该类使用QStatusBar来创建一个包含永久部件和临时部件的状态栏。在这个示例中,我们创建了三个永久部件(三个QLabel)和三个临时部件(三个QLineEdit),并将它们添加到状态栏中。每个部件都被添加到一个布局中,然后将布局添加到状态栏中。这个示例演示了如何创建多个部件并将其添加到状态栏中。