0、实现功能
程序演示
qt学习

1、创建自己的ui类
2.使用两个组件
做出如下效果
3、在原本的ui文件中导入自定义的ui
- 使用widget容器
- 右键widget提升窗口部件
4、组件关联
通过查询帮助文档,可以很容易的找到信号与对应的槽。将两个组件关联起来。
#include "smallwidget.h"
#include "ui_smallwidget.h"
//自己创建的ui类
SmallWidget::SmallWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::SmallWidget)
{
ui->setupUi(this);
//QSpinBox移动 QSlider跟着移动
void(QSpinBox:: * spSignal)(int) = &QSpinBox::valueChanged;
connect(ui->spinBox,spSignal,ui->horizontalSlider,&QSlider::setValue);
//QSlider移动 QSpinBox跟着移动
void(QSlider:: * slider)(int) = &QSlider::valueChanged;
connect(ui->horizontalSlider,slider,ui->spinBox,&QSpinBox::setValue);
}
SmallWidget::~SmallWidget()
{
delete ui;
}
5、加入按钮
- 在主ui中加入按钮
- 在自定义类中写入函数
记得在.h文件中写入函数声明
#include "smallwidget.h"
#include "ui_smallwidget.h"
SmallWidget::SmallWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::SmallWidget)
{
ui->setupUi(this);
//QSpinBox移动 QSlider跟着移动
void(QSpinBox:: * spSignal)(int) = &QSpinBox::valueChanged;
connect(ui->spinBox,spSignal,ui->horizontalSlider,&QSlider::setValue);
//QSlider移动 QSpinBox跟着移动
void(QSlider:: * slider)(int) = &QSlider::valueChanged;
connect(ui->horizontalSlider,slider,ui->spinBox,&QSpinBox::setValue);
}
//设置数字
void SmallWidget::setNum(int num){
ui->spinBox->setValue(num);
}
//获取数字
int SmallWidget::getNum(){
return ui->spinBox->value();
}
SmallWidget::~SmallWidget()
{
delete ui;
}
- 编写按钮关联
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
//获取当前值
connect(ui->btn,&QPushButton::clicked,[=](){
qDebug() << ui->widget->getNum();
});
//设置
connect(ui->btn2,&QPushButton::clicked,[=](){
ui->widget->setNum(50);
});
}
MainWindow::~MainWindow()
{
delete ui;
}