diff --git a/README.md b/README.md index dd7ad82..8bcecfe 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # Qt-RangeSlider Implement range slider in Qt
Here is the demo:
-![image](https://github.com/ThisIsClark/Qt-RangeSlider/blob/master/demo.gif)
+![image](https://github.com/hellowilman/Qt-RangeSlider/blob/master/demo.gif)
## How to use 1. Import RangeSlider.cpp & RangeSlider.h to your project. 2. Add a widget in Qt Designer. 3. Right click this widget to promote it to RangeSlider. -4. Now you can use this RangeSlider in your code. \ No newline at end of file +4. Now you can use this RangeSlider in your code. diff --git a/RangeSlider.cpp b/RangeSlider.cpp index deb4128..849c32a 100644 --- a/RangeSlider.cpp +++ b/RangeSlider.cpp @@ -171,6 +171,7 @@ void RangeSlider::mouseMoveEvent(QMouseEvent* aEvent) void RangeSlider::mouseReleaseEvent(QMouseEvent* aEvent) { Q_UNUSED(aEvent); + emit slidingFinished(); mFirstHandlePressed = false; mSecondHandlePressed = false; diff --git a/RangeSlider.h b/RangeSlider.h index b8a54a7..f9ed88b 100644 --- a/RangeSlider.h +++ b/RangeSlider.h @@ -42,6 +42,7 @@ class RangeSlider : public QWidget void lowerValueChanged(int aLowerValue); void upperValueChanged(int aUpperValue); void rangeChanged(int aMin, int aMax); + void slidingFinished(); public slots: void setLowerValue(int aLowerValue); diff --git a/demo.gif b/demo.gif index 5592d16..3d911c7 100644 Binary files a/demo.gif and b/demo.gif differ diff --git a/mainwindow.cpp b/mainwindow.cpp index 49d64fc..b50d329 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -6,9 +6,46 @@ MainWindow::MainWindow(QWidget *parent) : ui(new Ui::MainWindow) { ui->setupUi(this); + + ui->widget->setMinimum(0); + ui->widget->setMaximum(999); + + ui->label_1->setText(QString::number(0)); + ui->label_2->setText(QString::number(999)); + ui->label_3->setText("Current Value: " + QString::number(0) + "-" + QString::number(999)); + + connect(ui->widget,SIGNAL(lowerValueChanged(int)), this, SLOT(slog_RangeSlider_lower_changed(int))); + connect(ui->widget,SIGNAL(upperValueChanged(int)), this, SLOT(slog_RangeSlider_upper_changed(int))); + connect(ui->widget, SIGNAL(rangeChanged(int,int)), this, SLOT(slog_RangeSlider_changevalue(int,int))); + connect(ui->widget, SIGNAL(slidingFinished()), this, SLOT(slog_RangeSlider_slidingfinish())); } + MainWindow::~MainWindow() { delete ui; } + +void MainWindow::slog_RangeSlider_lower_changed(int value) +{ + ui->label_1->setText(QString::number(value)); +} + +void MainWindow::slog_RangeSlider_upper_changed(int value) +{ + ui->label_2->setText(QString::number(value)); +} + +void MainWindow::slog_RangeSlider_changevalue(int v1, int v2) +{ + ui->label_3->setText("Current Value: " + QString::number(v1) + "-" + QString::number(v2)); + +} + +void MainWindow::slog_RangeSlider_slidingfinish() +{ + int v1 = ui->widget->GetLowerValue(); + int v2 = ui->widget->GetUpperValue(); + + ui->label_3->setText("Current Value: " + QString::number(v1) + "-" + QString::number(v2)); +} diff --git a/mainwindow.h b/mainwindow.h index a3948a9..9aa87c3 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -14,6 +14,11 @@ class MainWindow : public QMainWindow public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); +public slots: + void slog_RangeSlider_lower_changed(int value); + void slog_RangeSlider_upper_changed(int value); + void slog_RangeSlider_changevalue(int v1,int v2); + void slog_RangeSlider_slidingfinish(); private: Ui::MainWindow *ui; diff --git a/mainwindow.ui b/mainwindow.ui index 3d1d783..2aa7e98 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -11,19 +11,60 @@ - MainWindow + RangeSlider - - - - 40 - 70 - 311 - 80 - - - + + + + + + + + false + + + background:rgb(206, 224, 240) + + + + + + TextLabel + + + + + + + TextLabel + + + + + + + + + + TextLabel + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + @@ -31,7 +72,7 @@ 0 0 400 - 22 + 26