1.创建Qt Widgets Application工程
2.编辑.ui文件打开QML设计界面
3.向设计界面拖放QSpinBox,QSlider,QVBoxLayout控件如下
4.修改窗口标题
this->setWindowTitle("基于QML的QSpinBox与QSlider控件同步");
5.修改控件默认值
ui->spinBox->setRange(0,100);
ui->horizontalSlider->setRange(0,100);
ui->verticalSlider->setRange(0,100);
6.关联控件信号
//关联控件之间信号
connect(ui->spinBox,SIGNAL(valueChanged(int)),ui->horizontalSlider,SLOT(setValue(int)));
connect(ui->spinBox,SIGNAL(valueChanged(int)),ui->verticalSlider,SLOT(setValue(int)));
connect(ui->horizontalSlider,SIGNAL(valueChanged(int)),ui->spinBox,SLOT(setValue(int)));
connect(ui->verticalSlider,SIGNAL(valueChanged(int)),ui->spinBox,SLOT(setValue(int)));
演示效果
完整源码
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);//任何通过代码修改UI界面值必须在调用setupUi之后,不然不会生效
this->setWindowTitle("基于QML的QSpinBox与QSlider控件同步");
ui->spinBox->setRange(0,100);
ui->horizontalSlider->setRange(0,100);
ui->verticalSlider->setRange(0,100);
//关联控件之间信号
connect(ui->spinBox,SIGNAL(valueChanged(int)),ui->horizontalSlider,SLOT(setValue(int)));
connect(ui->spinBox,SIGNAL(valueChanged(int)),ui->verticalSlider,SLOT(setValue(int)));
connect(ui->horizontalSlider,SIGNAL(valueChanged(int)),ui->spinBox,SLOT(setValue(int)));
connect(ui->verticalSlider,SIGNAL(valueChanged(int)),ui->spinBox,SLOT(setValue(int)));
//设置默认值
ui->spinBox->setValue(20);
}
MainWindow::~MainWindow()
{
delete ui;
}