1、前期准备:
我是封装了这样一个控件:
下面就在主窗口中操作:
2、代码
自定义控件smallWidget.cpp:
SmallWidget::SmallWidget(QWidget *parent) : QWidget(parent), ui(new Ui::SmallWidget) { ui->setupUi(this); //spinBox移动 horizonalSlider跟着移动 void(QSpinBox::*spSingnal)(int)=&QSpinBox::valueChanged; //信号有重载 connect(ui->spinBox,spSingnal,ui->horizontalSlider,&QSlider::setValue); //horizonalSlider移动 spinBox跟着移动 connect(ui->horizontalSlider,&QSlider::valueChanged,ui->spinBox,&QSpinBox::setValue); } //获取当前的值 int SmallWidget::getNum() { return ui->spinBox->value(); } //设置值到spinBox和slider void SmallWidget:: setNum(int value) { ui->spinBox->setValue(value); }
主窗口widget.cpp:
Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->setupUi(this); //把buttonGet按钮与获取滑轮当前值连接起来 connect(ui->buttonGet,&QPushButton::clicked,[=](){ qDebug()<<ui->widget->getNum(); //widget是自定义封装控件的名字 }); //把buttonSet按钮与设置滑轮值连接起来 connect(ui->buttonSet,&QPushButton::clicked,[=](){ ui->widget->setNum(50); }); }
3、效果