1 新建 QT widget application
2 添加
3 上一步生成的ui界面创建自定义控件
4, 在第1步的ui界面中加一个 Widget
5,提升为类
提升的基类为第二步生成的类
Form::Form(QWidget *parent) :
QWidget(parent),
ui(new Ui::Form)
{
ui->setupUi(this);
void (QSpinBox::* spinSignal)(int) = &QSpinBox::valueChanged;
connect(ui->spinBox, spinSignal,ui->horizontalSlider, &QSlider::setValue);
// void (QSlider::* sliderSignal)(int) = &QSlider::valueChanged;
// connect(ui->horizontalSlider, sliderSignal,ui->spinBox, &QSpinBox::setValue);
connect(ui->horizontalSlider, &QSlider::valueChanged,ui->spinBox, &QSpinBox::setValue);
}
6,用button获取或修改值
在第1步的ui界面中加两个button
7 修改程序 主要实现getData和setData两个函数
#ifndef FORM_H
#define FORM_H
#include <QWidget>
namespace Ui {
class Form;
}
class Form : public QWidget
{
Q_OBJECT
public:
explicit Form(QWidget *parent = nullptr);
~Form();
void setDate( int value);
int getDate();
private:
Ui::Form *ui;
};
#endif // FORM_H
#include "form.h"
#include "ui_form.h"
Form::Form(QWidget *parent) :
QWidget(parent),
ui(new Ui::Form)
{
ui->setupUi(this);
void (QSpinBox::* spinSignal)(int) = &QSpinBox::valueChanged;
connect(ui->spinBox, spinSignal,ui->horizontalSlider, &QSlider::setValue);
// void (QSlider::* sliderSignal)(int) = &QSlider::valueChanged;
// connect(ui->horizontalSlider, sliderSignal,ui->spinBox, &QSpinBox::setValue);
connect(ui->horizontalSlider, &QSlider::valueChanged,ui->spinBox, &QSpinBox::setValue);
}
void Form::setDate( int value)
{
ui->spinBox->setValue(value);
}
int Form::getDate(){
return ui->spinBox->value();
}
Form::~Form()
{
delete ui;
}
关联button
#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
connect(ui->pushButton, &QPushButton::clicked, [=](){
ui->widget->getDate();
qDebug()<< ui->widget->getDate() << endl;
});
connect(ui->pushButton_2, &QPushButton::clicked, [=](){
ui->widget->setDate(50);
});
}
Widget::~Widget()
{
delete ui;
}
8 运行