目录
一.状态栏
1.简述状态栏
二.QStatusBar
1.概念
2.QStatusBar的属性
3.QStatusBar常用成员函数
三.代码创建状态栏
1.创建状态栏
2.在状态栏上显示实时信息
3.在状态栏上显示永久信息(通过label)
4.在状态栏中创建进度条
一.状态栏
1.简述状态栏
状态栏是应⽤程序中输出简要信息的区域。⼀般位于主窗⼝的最底部,⼀个窗⼝中最多只能有⼀个状态栏。在 Qt 中,状态栏是通过 QStatusBar类 来实现的。
在状态栏中可以显⽰的消息类型有:
- 实时消息:如当前程序状态
- 永久消息:如程序版本号,机构名称
- 进度消息:如进度条提⽰,百分百提⽰
二.QStatusBar
1.概念
QStatusBar是Qt框架为了实现状态栏提供的类,用于在应用程序窗口底部显示状态信息。它可以显示一些固定的文本和图标,并且可以通过API动态更新显示内容。
2.QStatusBar的属性
属性 | 说明 |
currentMessage | 当前显示的文本消息。 可以使用setCurrentMessage()方法来设置。 |
sizeGripEnabled | 是否显示大小调整控件。 默认情况下,状态栏右侧会显示一个大小调整的小部件,可以通过设置该属性为false来隐藏它。 |
visible | 状态栏的可见性。 可以使用setVisible()方法来设置状态栏的可见性。 |
count | 状态栏当前显示的小部件数量。 可以通过addWidget()方法添加小部件,并通过removeWidget()方法移除小部件。 |
maximumHeight | 状态栏的最大高度。 可以使用setMaximumHeight()方法设置状态栏的最大高度。 |
3.QStatusBar常用成员函数
API | 说明 |
showMessage() | 显示一条文本消息。可以指定消息内容、显示时间和消息类型(例如,临时消息或永久消息)。 |
clearMessage() | 清除当前显示的消息。 |
addWidget() | 添加一个小部件到状态栏。可以添加QLabel、QProgressBar等小部件。 |
removeWidget() | 移除状态栏上的指定小部件。 |
insertWidget() | 在指定位置插入一个小部件到状态栏。 |
setStyleSheet() | 设置状态栏的样式表。 |
setSizeGripEnabled() | 设置是否显示大小调整控件。 |
setVisible() | 设置状态栏的可见性。 |
heightForWidth() | 根据宽度计算状态栏的高度。 |
三.代码创建状态栏
1.创建状态栏
状态栏的创建是通过 QMainWindow 类提供的 statusBar()函数来创建;⽰例如下:
//创建状态栏
QStatusBar* sta=statusBar();
//将状态栏设置到窗口上
this->setStatusBar(sta);
2.在状态栏上显示实时信息
// 在状态栏显示信息20s
sta->showMessage("hello Qt",6000);
运行结果:
3.在状态栏上显示永久信息(通过label)
//创建标签
QLabel* label=new QLabel("Progress bar");
//将标签设置到状态栏中 来永久显示信息
sta->addWidget(label);
//创建另一个标签,放置于右侧
QLabel* label2=new QLabel("Prompt message _ right");
sta->addPermanentWidget(label2);
运行结果:
4.在状态栏中创建进度条
//创建进度条
QProgressBar* progressbar=new QProgressBar();
//设置进度条范围
progressbar->setRange(0,100);
//设置进度条样式
progressbar->setStyleSheet("QProgressBar::chunk{border-radius:5px;background:blue}");
//设置进度条初值
progressbar->setValue(50);
//设置进度条到窗口
sta->addWidget(progressbar);
运行结果: