QT之QStatusBar的简单介绍

QT之QStatusBar的简单介绍

    • 成员函数
    • 用法举例

成员函数

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   
#include   
#include   
#include   
#include   
#include   
#include   
  
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),并将它们添加到状态栏中。每个部件都被添加到一个布局中,然后将布局添加到状态栏中。这个示例演示了如何创建多个部件并将其添加到状态栏中。

你可能感兴趣的:(qt,系统架构,开发语言)