2个空间封装成一个空间
1.创建一个新项目
2.在根项目名称中右键----添加新文件----Qt(Qt设计师界面类)----widget再命一个名字doublewidget,自动生成.h和cpp文件
3.在doublewidget.ui中添加想新增的组合控件,注意这两个控件是QWidget的子控件
4.想在widget.ui中使用这个控件的时候需要在widget.ui中先拉一个Containers的组件widget来作为容器,
再在这个widget中右键----提升类的名称可以在doublewidget.cpp中招,勾选全局包含,并点击右边的添加 ,跳转以后点击提升。之后可以看到右边的变成了Doublewidget
运行以后的效果
关联doublewidget.cpp这个是设置这两个控件的逻辑,两个相关联,同时添加set和get函数
#include "doublewidget.h"
#include "ui_doublewidget.h"
DoubleWidget::DoubleWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::DoubleWidget)
{
ui->setupUi(this);
//QSpinBox移动 Slider跟着移动
void(QSpinBox:: * signal)(int) = &QSpinBox::valueChanged;
connect(ui->spinBox,signal,ui->horizontalSlider,&QSlider::setValue);
//Slider移动 SpinBox跟着移动
connect(ui->horizontalSlider,&QSlider::valueChanged,ui->spinBox,&QSpinBox::setValue);
}
void DoubleWidget::setValue(int v)
{
ui->spinBox->setValue(v);
}
int DoubleWidget::getValue()
{
return ui->spinBox->value();
}
DoubleWidget::~DoubleWidget()
{
delete ui;
}
widget.cpp主界面添加2个按钮
#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
//点击设置 到一半的位置
connect(ui->btnSet,&QPushButton::clicked,[=](){
ui->widget->setValue(50);
});
//点击获取,拿到当前值
connect(ui->btnGet,&QPushButton::clicked,[=](){
qDebug () << "当前值为:" << ui->widget->getValue();
});
}
Widget::~Widget()
{
delete ui;
}