自定义控件

109 阅读1分钟

上面基类选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);
}

\

创作打卡挑战赛

赢取流量/现金/CSDN周边激励大奖