Qt开发基础(8)——自定义封装控件

创建一个Widget之后,再进行新建如下设计师界面:

 

 

 

创建好了就是这样多了一个smallwidget.ui

假如我们需要将Spin Box和Horizontal Slider封装在一起 

 

 

我们可以看到封装的小控件是一个QWidget类型,所以我们在主窗口也应该加入一个QWidget类型的窗口。(类型必须一致)

 然后打开主窗口的Qwidget选择“提升为”,提升的类名称为SmallWidget

然后再点击添加,再点击“提升” 

发现主窗口的类名变为SmallWidget了。然后运行一下就会出现刚才封装的控件。 

 

如果一个主窗口需要几个进度条,那么再拉一个QWidget进行提升为就可以。 

 实际生活中,我们的滑块引动,左边的值也应该响应的变化,这时候我们只需要再刚才创建的smallWidget.h和cpp中进行操作即可。

实现左边动右边就动,右边动左边就动的代码,smallwidget.cpp代码为:

#include "smallwidget.h"
#include "ui_smallwidget.h"

SmallWidget::SmallWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::SmallWidget)
{
    ui->setupUi(this);
    //QSpinBox移动,QSlider跟着移动,valueChanged发生了重载不知道是int类型还是QString类型。所以我们可以写一个函数指针
    void(QSpinBox::* spSignal)(int) = &QSpinBox::valueChanged;
    connect(ui->spinBox,spSignal,ui->horizontalSlider,&QSlider::setValue);

    //QSLider移动QSinBox移动:由于QSLider的valueChange()函数只有一个不会重载所以不需要定义函数指针
    connect(ui->horizontalSlider,&QSlider::valueChanged,ui->spinBox,&QSpinBox::setValue);
}

SmallWidget::~SmallWidget()
{
    delete ui;
}

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI炮灰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值