上面基类选QWidget
然后写代码
下图是前提,否则不能提升为
上图不是.cpp里面是.h里面
添加后再点击提升,再编译就可以。全局包含的好处是再放一个widget,点提升为会自动有SmallWidget选项,也有取消提升
下面是把滑块和数字条连接起来;
#include
"smallwidget.h"
#include <QSpinBox>//数字条
#include <QSlider>//滑块
#include <QHBoxLayout>//水平布局
SmallWidget::SmallWidget(QWidget *parent) :
QWidget(parent)
{
QSpinBox *spin = new QSpinBox(this);//创建数字条
QSlider *slider = new QSlider(Qt::Horizontal,this);//滑块可能有两个方向,所以用第二个函数
//把控件添加到布局中
QHBoxLayout *hLayout = new QHBoxLayout;//先不指定父对象,一会人为添加过来,也可以QHBoxLayout(this)
hLayout->addWidget(spin);
hLayout->addWidget(slider);
setLayout(hLayout);//人为指定父对象
//把两个控件连起来
connect(spin,static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged),
slider,
&QSlider::setValue
);//发出者,强制转换int类型,接收者,不用强转
connect(slider,&QSlider::valueChanged,spin,&QSpinBox::setValue);
}