QMainWindow的结构如下:
栏位于主窗口的最下方,提供一个显示工具提示等信息的地方。用于显示永久或临时的状态信息。
状态信息可以分为三类:
- 临时信息,一般的提示信息
- 正常信息,如页数
- 永久信息,如版本信息
常用方法
方法 | 说明 |
---|---|
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 showMessage(const QString &message, int timeout = 0) | 在状态栏显示一条临时信息,指定时间间隔 |
void clearMessage() | 删除正在显示的临时信息 |
信号
方法 | 说明 |
---|---|
void messageChanged(const QString &message) |
使用
通过主窗口的QMainWindow的setStatusBar()函数设置状态栏.
#实例化状态栏
self.statusBar=QStatusBar()
#设置状态栏
self.setStatusBar(self.statusBar)
设置永久信息
void addPermanentWidget(QWidget *widget, int stretch = 0);
通过这个函数添加相应控件,这里的显示会显示到statusBar的右侧,并且不会被临时信息覆盖。
self.statusBar = QStatusBar(self)
#添加一个显示永久信息的标签控件
self.info = QLabel(self)
self.info.setText('实战')
self.info.setAlignment(Qt.AlignRight)
self.statusBar.addPermanentWidget(self.info)
self.setStatusBar(self.statusBar)
样式修改
控制右下角的小三角是否显示。
void setSizeGripEnabled(bool);
当没有任何提示时,状态栏会有一个短短的竖线,消除普竖杠:
self.statusBar.setStyleSheet(QString("QStatusBar::item{border: 0px}"));
设置样式:
QStatusBar {
background: brown;
}
QStatusBar::item {
border: 1px solid red;
border-radius: 3px;
}
QStatusBar QLabel {
border: 3px solid white;
}