生命本就是无法回头的旅途,放心大胆的向前走就好。
1.添加.cpp、.h、.ui文件
点击项目名--添加新文件- -Qt--Qt Desiger Form Class--选择需要的模板(下面使用的Widget)
2.在新添加的form.ui文件添加QSpinBox和QSlider两个控件,命名为spB和hSli.将二者封装为一个控件滑动与数值变化一致。
3.在创建项目文件时,自动生成的widget.ui文件中,拖拽添加一个Widget,点击提升为,提升的基类名称为QWidget,类的名称为Form,务必与form.cpp文件中类的名称一致
4.添加在两个按钮btn1、btn2,并实现点击btn1获取QSpinBox和QSlider两个控件当前值,点击btn2btn1设置QSpinBox和QSlider两个控件值为50。
form.h
#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 setV(int Svalue);//函数声明
int getV();
private:
Ui::Form *ui;
};
#endif // FORM_H
form.cpp
#include "form.h"
#include "ui_form.h"
Form::Form(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Form)
{
ui->setupUi(this);
connect(ui->hSli,&QAbstractSlider::valueChanged,ui->spB,&QSpinBox::setValue);//QSlider滑动,QSpinBox数字跟随变化
connect(ui->spB,&QSpinBox::valueChanged,ui->hSli,&QAbstractSlider::setValue);//QSpinBox数字变化,QSlider跟随滑动
}
void Form::setV(int Svalue)
{
ui->hSli->setValue(Svalue);
};//设置QSlider的值
int Form::getV()
{
return ui->hSli->value();
}//获取QSlider的值
Form::~Form()
{
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->btn1,&QPushButton::clicked,[=]()
{
qDebug()<<ui->widget1->getV();
});//关联按键1与获取QSlider值的函数
connect(ui->btn2,&QPushButton::clicked,[=]()
{
ui->widget1->setV(50);
});//关联按键2与设置QSlider值的函数,并将QSlider的值设置为50
}
Widget::~Widget()
{
delete ui;
}
ui界面