知识准备:
QStatusBar Class:提供一个水平的横条,显示当前的状态信息。
QStatusBar Class
The QStatusBar class provides a horizontal bar suitable for presenting status information.More...
Header: | #include <QStatusBar> |
qmake: | QT += widgets |
Inherits: |
QProgressBar:进度条,用于显示一个水平或者垂直的进度条。
The QProgressBar widget provides a horizontal or vertical progress bar.More...
Header: | #include <QProgressBar> |
qmake: | QT += widgets |
Inherits: |
在最近的工作中,客户提了一个需求:在状态栏显示当前程序的进度条。
实现方法很简单,直接调用QStatusBar Class的成员函数void QStatusBar::addPermanentWidget(QWidget *widget, int stretch = 0)即可。
下面使用一个程序,来讲解QProgressBar和QStatusBar的用法。
实例:
效果图:
实现步骤:
1、新建Qt GUI应用程序,基类选择QMainWindow。
2、在程序的界面文件中,拖拽出如下控件。
3、各文件代码如下:
main.cpp
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void on_actionInformation_triggered();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QString>
#include <QLabel>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->horizontalSlider->setStatusTip(QString::fromLocal8Bit("Information"));
ui->progressBar->setStatusTip("ProgressBar1");
ui->progressBar->setRange(0,100);
ui->progressBar->setValue(0);
ui->progressBar_2->setStatusTip("ProgressBar2");
ui->progressBar_2->setRange(0,100);
ui->progressBar_2->setValue(0);
QLabel *label = new QLabel("ProgressBar4");
ui->statusBar->addPermanentWidget(label); //将label标签放置到任务栏
ui->statusBar->addPermanentWidget(ui->progressBar_3); //将进度条放置到任务栏
ui->progressBar_3->setStatusTip("ProgressBar3");
ui->progressBar_3->setRange(0,100);
ui->progressBar_3->setValue(0);
connect(ui->horizontalSlider,SIGNAL(valueChanged(int)),ui->progressBar_3,SLOT(setValue(int)));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_actionInformation_triggered()
{
ui->statusBar->showMessage("提示", 1000);
}
代码功能总结:
:设置触发水平滑块时,状态栏显示的提示信息。
ui->progressBar->setStatusTip(tr("ProgressBar1"));
:设置鼠标滑过进度条时,状态栏显示的提示信息。
ui->progressBar->setRange(0,100);
:设置进度条的范围。
ui->progressBar->setValue(0);
:设置进度条当前值。
QLabel *label = new QLabel("ProgressBar4");
ui->statusBar->addPermanentWidget(label);
:将label标签放置到任务栏
ui->statusBar->addPermanentWidget(ui->progressBar_3);
: 将进度条放置到任务栏
ui->statusBar->showMessage("提示", 1000);
:设置状态栏提示显示的内容和时间。(时间单位:毫秒)
标签:include,Qt,进度条,progressBar,源码,ui,QStatusBar,QProgressBar,MainWindow From: https://blog.51cto.com/u_15907770/5926124