一、效果
自定义红色区域组件,做到数字与拖拽条相互影响。
二、实现
输入合适的名字
打开自定义组件ui
选择合适的组件进行布局
将两个空间的信号和值进行绑定
新增自定义函数并实现
#include "smallwidget.h" #include "ui_smallwidget.h" smallWidget::smallWidget(QWidget *parent) : QWidget(parent), ui(new Ui::smallWidget) { ui->setupUi(this); //QSpinBox移动 QSlider更着移动 void(QSpinBox:: * spSignal)(int)=&QSpinBox::valueChanged; connect(ui->spinBox,spSignal,ui->horizontalSlider,&QSlider::setValue); //QSlider滑动 QSpinBox数字跟着改变 connect(ui->horizontalSlider,&QSlider::valueChanged,ui->spinBox,&QSpinBox::setValue); } //设置数字 void smallWidget::setNum(int num){ ui->spinBox->setValue(num); } //获取数字 int smallWidget::getNum(){ return ui->spinBox->value(); } smallWidget::~smallWidget() { delete ui; }
三、使用
绘制一个Widget,选择提升为smallWidget。
新增两个功能按钮
实现按钮功能
#include "widget.h" #include "ui_widget.h" #include<QDebug> Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ui->setupUi(this); //点击获取 获取当前空间当前的值 connect(ui->btn_get,&QPushButton::clicked,[=](){ qDebug()<<ui->widget->getNum(); }); //设置到一半 connect(ui->btn_set,&QPushButton::clicked,[=](){ ui->widget->setNum(50); }); } Widget::~Widget() { delete ui; }