QT学习笔记(8) QT中的控件

自定义控件

首先建立C++文件,

然后再构造函数中逐步构造自定义的控件

在ui中,在界面上放置一个Widget,然后右击,提升为想要的控件。

注意:此处的提升必须是父类提升到其子类。如果没有继承关系则不能提升。

示例代码如下:

#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;
    //把控件添加到布局中
    hLayout->addWidget(spin);
    hLayout->addWidget(slider);

    setLayout(hLayout);
    //valueChanged有重载,我们需要进行强制类型转换
    connect(spin,static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged),
            slider,&QSlider::setValue);

    connect(slider,&QSlider::sliderMoved,spin,&QSpinBox::setValue);

}
原文地址:https://www.cnblogs.com/blog-ccs/p/7445488.html