在qt项目开发过程中,往往会用到进度条,已经调整声音或界面相关的操作,例如,动态调整界面颜色等需求,这就用到dial控件和progressBar控件,这两个控件在使用中其实也很简单,只是设置值就可以了,下边我就使用dial控件来控制progressBar进度条的功能做了一个简单的demo,希望对大家在学习这两个控件的时候有帮助,上代码
新建一个mainwindow工程,.h的要代码如下
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void on_dial_slot(int iDial);
void on_dial_color(int iColor);
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
下边是.cpp的代码
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPalette>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->progressBar->setValue(0);
ui->progressBar->setMaximum(255);
// 设置dial的最小值最大值
ui->dial->setMinimum(0);
ui->dial->setMaximum(255);
// 连接信号和槽
connect(ui->dial,SIGNAL(sliderMoved(int)),this,SLOT(on_dial_slot(int)));
connect(ui->dial,SIGNAL(sliderMoved(int)),this,SLOT(on_dial_color(int)));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_dial_slot(int iDial)
{
ui->progressBar->setValue(iDial);
}
void MainWindow::on_dial_color(int iColor)
{
QPalette palette = this->palette();
palette.setColor(QPalette::Window,QColor(iColor,255,0));
this->setPalette(palette);
}
下边是ui界面,很简单
使用方法是,点击dial的操作旋转,progressBar的进度条会随着增加。