自定义控件将两个控件封装成一个控件然后操作。
1.1 创建QT-设计师界面类
1.2拖拽widget 右键 提神为 - 类名写入 - 全局包含 - 添加- 提升
2.3 QSpinBox 移动 Slider跟着移动
1.4 对外接口 setValue getValue
smallWidget 设计师界面类
提升完了 使用
信号和槽
valueChanged
setValue
smallwidget
#include "smallwidget.h"
#include "ui_smallwidget.h"
smallwidget::smallwidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::smallwidget)
{
ui->setupUi(this);
//QSpinBox移动Slider跟着移动
void(QSpinBox:: * signal) (int) = &QSpinBox::valueChanged;
connect(ui->spinBox,signal,ui->horizontalSlider,&QSlider::setValue);
//Slider移动 SpinBox跟着移动
connect(ui->horizontalSlider,&QSlider::valueChanged,ui->spinBox,&QSpinBox::setValue);
}
void smallwidget::setValue(int n)
{
ui->spinBox->setValue(n);
}
int smallwidget::getValue()
{
return ui->spinBox->value();
}
smallwidget::~smallwidget()
{
delete ui;
}
widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
connect(ui->setbtn,&QPushButton::clicked,[=](){
ui->widget->setValue(50);
});
connect(ui->btnget,&QPushButton::clicked,[=](){
qDebug()<<ui->widget->getValue();
});
}
Widget::~Widget()
{
delete ui;
}