diff --git a/QtQProgressBarEx/ExQProgressBar.cpp b/QtQProgressBarEx/ExQProgressBar.cpp new file mode 100644 index 0000000..7d24683 --- /dev/null +++ b/QtQProgressBarEx/ExQProgressBar.cpp @@ -0,0 +1,36 @@ +#include "ExQProgressBar.h" +#include "ui_ExQProgressBaressBarressbar.h" + +ExQProgressBar::ExQProgressBar(QWidget *parent) : + QWidget(parent), + ui(new Ui::ExQProgressBar) +{ + ui->setupUi(this); + setWindowTitle(QObject::tr("QSlider、QScrollBar、QProgressBar控件的联动")); + + //ui->progressBarHor->setOrient1ation(Qt::Horizontal /*(the default) Qt::Vertical*/); 设置进度条水平或竖直 + + connect(ui->sliderHor, SIGNAL(valueChanged(int)), this, SLOT(onValChange(int))); + connect(ui->scrollBarHor, SIGNAL(valueChanged(int)), this, SLOT(onValChange(int))); + connect(ui->scrollBarHor, SIGNAL(valueChanged(int)), this, SLOT(onValChange(int))); + connect(ui->sliderVer, SIGNAL(valueChanged(int)), this, SLOT(onValChange(int))); + connect(ui->scrollBarVer, SIGNAL(valueChanged(int)), this, SLOT(onValChange(int))); + connect(ui->progressBarVer, SIGNAL(valueChanged(int)), this, SLOT(onValChange(int))); +} + +ExQProgressBar::~ExQProgressBar() +{ + delete ui; +} + +//对应的槽函数 +void ExQProgressBar::onValChange(int val) +{ + ui->sliderHor->setValue(val); + ui->scrollBarHor->setValue(val); + ui->progressBarHor->setValue(val); + ui->sliderVer->setValue(val); + ui->scrollBarVer->setValue(val); + ui->progressBarVer->setValue(val); + +} diff --git a/QtQProgressBarEx/ExQProgressBar.h b/QtQProgressBarEx/ExQProgressBar.h new file mode 100644 index 0000000..c1d11ba --- /dev/null +++ b/QtQProgressBarEx/ExQProgressBar.h @@ -0,0 +1,25 @@ +#ifndef EXQPROGRESSBAR_H +#define EXQPROGRESSBAR_H + +#include + +namespace Ui { +class ExQProgressBar; +} + +class ExQProgressBar : public QWidget +{ + Q_OBJECT + +public: + explicit ExQProgressBar(QWidget *parent = nullptr); + ~ExQProgressBar(); + +public slots: + void onValChange(int val); + +private: + Ui::ExQProgressBar *ui; +}; + +#endif // EXQPROGRESSBAR_H diff --git a/QtQProgressBarEx/ExQProgressBaressBarressbar.ui b/QtQProgressBarEx/ExQProgressBaressBarressbar.ui new file mode 100644 index 0000000..db1aa96 --- /dev/null +++ b/QtQProgressBarEx/ExQProgressBaressBarressbar.ui @@ -0,0 +1,104 @@ + + + ExQProgressBar + + + + 0 + 0 + 786 + 302 + + + + ExQProgressBar + + + + + + 水平 + + + + + + Qt::Horizontal + + + + + + + Qt::Horizontal + + + + + + + 24 + + + %p% + + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Maximum + + + + 40 + 20 + + + + + + + + 竖直 + + + + + + Qt::Vertical + + + + + + + Qt::Vertical + + + + + + + 24 + + + Qt::Vertical + + + + + + + + + + + + diff --git a/QtQProgressBarEx/QT_win_32x32.ico b/QtQProgressBarEx/QT_win_32x32.ico new file mode 100644 index 0000000..0ee0568 Binary files /dev/null and b/QtQProgressBarEx/QT_win_32x32.ico differ diff --git a/QtQProgressBarEx/QtQProgressBarEx.pro b/QtQProgressBarEx/QtQProgressBarEx.pro new file mode 100644 index 0000000..b6129de --- /dev/null +++ b/QtQProgressBarEx/QtQProgressBarEx.pro @@ -0,0 +1,42 @@ +#------------------------------------------------- +# +# Project created by QtCreator 2019-08-24T14:55:33 +# +#------------------------------------------------- + +QT += core gui + +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets + +TARGET = QtQProgressBarEx +TEMPLATE = app + +# The following define makes your compiler emit warnings if you use +# any feature of Qt which has been marked as deprecated (the exact warnings +# depend on your compiler). Please consult the documentation of the +# deprecated API in order to know how to port your code away from it. +DEFINES += QT_DEPRECATED_WARNINGS + +# You can also make your code fail to compile if you use deprecated APIs. +# In order to do so, uncomment the following line. +# You can also select to disable deprecated APIs only up to a certain version of Qt. +#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 + +CONFIG += c++11 + +SOURCES += \ + main.cpp \ + ExQProgressBar.cpp + +HEADERS += \ + ExQProgressBar.h + +FORMS += \ + ExQProgressBaressBarressbar.ui + +RC_ICONS += QT_win_32x32.ico + +# Default rules for deployment. +qnx: target.path = /tmp/$${TARGET}/bin +else: unix:!android: target.path = /opt/$${TARGET}/bin +!isEmpty(target.path): INSTALLS += target diff --git a/QtQProgressBarEx/main.cpp b/QtQProgressBarEx/main.cpp new file mode 100644 index 0000000..8af7353 --- /dev/null +++ b/QtQProgressBarEx/main.cpp @@ -0,0 +1,11 @@ +#include "ExQProgressBar.h" +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + ExQProgressBar w; + w.show(); + + return a.exec(); +}