本文主要是介绍Qt:QStatusBar 和 QProgressBar 详细讲解(源码下载),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
知识准备:
QStatusBar Class:提供一个水平的横条,显示当前的状态信息。
The QStatusBar class provides a horizontal bar suitable for presenting status information.More...
Header: | #include <QStatusBar> |
qmake: | QT += widgets |
Inherits: | QWidget |
QProgressBar:进度条,用于显示一个水平或者垂直的进度条。
The QProgressBar widget provides a horizontal or vertical progress bar.More...
Header: | #include <QProgressBar> |
qmake: | QT += widgets |
Inherits: | QWidget |
在最近的工作中,客户提了一个需求:在状态栏显示当前程序的进度条。
实现方法很简单,直接调用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_OBJECTpublic: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->horizontalSlider->setStatusTip(QString("Information"));
:设置触发水平滑块时,状态栏显示的提示信息。
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);
:设置状态栏提示显示的内容和时间。(时间单位:毫秒)
源码下载地址:
http://download.csdn.net/detail/rl529014/9575511
这篇关于Qt:QStatusBar 和 QProgressBar 详细讲解(源码下载)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!