// SmallWidget.h
#ifndef SMALLWIDGET_H
#define SMALLWIDGET_H
#include <QWidget>
namespace Ui {
class SmallWidget;
}
class SmallWidget : public QWidget
{
Q_OBJECT
public:
explicit SmallWidget(QWidget *parent = 0);
void setNumberValue(int value);
int getNumber();
~SmallWidget();
private:
Ui::SmallWidget *ui;
};
#endif // SMALLWIDGET_H
// SmallWidget.cpp
#include "SmallWidget.h"
#include "ui_SmallWidget.h"
SmallWidget::SmallWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::SmallWidget)
{
ui->setupUi(this);
// QSpinBox移动, QSlider跟着移动
void(QSpinBox:: *spinBoxValueChangeFuncPointer)(int) = &QSpinBox::valueChanged;
void(QSlider:: *sliderSetValueFuncPointer)(int) = &QSlider::setValue;
connect(this->ui->spinBox, spinBoxValueChangeFuncPointer, this->ui->horizontalSlider, sliderSetValueFuncPointer);
// QSlider移动, QSpinBox跟着移动
void(QSlider:: *sliderValueChangeFuncPointer)(int) = &QSlider::valueChanged;
void(QSpinBox:: *spinBoxSetValueFuncPointer)(int) = &QSpinBox::setValue;
connect(this->ui->horizontalSlider, sliderValueChangeFuncPointer, this->ui->spinBox, spinBoxSetValueFuncPointer);
}
void SmallWidget::setNumberValue(int value) {
this->ui->spinBox->setValue(value);
}
int SmallWidget::getNumber() {
return this->ui->spinBox->value();
}
SmallWidget::~SmallWidget()
{
delete ui;
}
// Widget.cpp
#include "Widget.h"
#include "ui_Widget.h"
#include <QDebug>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
int value = -1;
// multable关键字用来改外部值
connect(this->ui->getValueButton, QPushButton::clicked, this->ui->myWidget, [=]() mutable {
value = this->ui->myWidget->getNumber();
qDebug() << value;
});
connect(this->ui->halfButton, QPushButton::clicked, this->ui->myWidget, [=](){
this->ui->myWidget->setNumberValue(50);
});
}
Widget::~Widget()
{
delete ui;
}