首先对加入的控件进行基本布局
界面共有四个共有四个QWidget,进行水平布局
其中最后一个控件为自定义控件
首先在项目中新建一个类控件继承于QWidget
在这里插入代码片
#include "smallwidget.h"
#include <QSpinBox>
#include <QSlider>
#include <QHBoxLayout>
SmallWidget::SmallWidget(QWidget *parent) : QWidget(parent)
{
QSpinBox *spin=new QSpinBox();
QSlider *slider =new QSlider(Qt::Horizontal,this);
//把控件添加到布局中
QHBoxLayout *hLayout= new QHBoxLayout(this);
hLayout->addWidget(spin);
hLayout->addWidget(slider);
connect(spin,static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged),slider,&QSlider::setValue);
connect(slider,&QSlider::valueChanged,spin,&QSpinBox::setValue);
//编写完成程序后还需要在ui界面中把widget提升为关联的新建的类名。就可以显示出编写的函数界面
}
ui界面的操作为:在widget右键选择“提升为”
添加自定义的类名名称,点击:添加-提升
其中connect为自定义控件中两个小组件的相互关联函数
由于函数重载,函数名一样,参数类型不同,需要进行强制类型转换。
强制类型转换方式为
static_cast<void(QSpinbox::*)(int)>