添加新文件(创建新的ui)
QT->设计师界面类
ui中设计控件
Widget中使用自定义控件:拖拽widget->右键->提升为->写自定义控件类名,点击添加->提升
实现功能
#include "smallwidget.h"
#include "ui_smallwidget.h"
smallWidget::smallWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::smallWidget)
{
ui->setupUi(this);
//QSpinBox移动,QSlider跟着移动
for(int i=0;i<=100;i+=10)
{
ui->comboBox->addItem(QString::number(i));//将数值转为QString
}
void(QSpinBox:: * signal)(int) = &QSpinBox::valueChanged;//valueChanged发生重载,需要用函数指针
connect(ui->spinBox, signal, ui->horizontalSlider, &QSlider::setValue);
connect(ui->horizontalSlider, &QSlider::sliderMoved, ui->spinBox, &QSpinBox::setValue);
//设置值
connect(ui->comboBox, &QComboBox::currentTextChanged, this, [=](QString text){
ui->spinBox->setValue(text.toInt());//将值设置
ui->horizontalSlider->setValue(text.toInt());
});
//获取值
connect(ui->getvalue, &QPushButton::clicked, this, [=](){
qDebug()<<ui->spinBox->value();
});
}
smallWidget::~smallWidget()
{
delete ui;
}
void smallWidget::setValue(int num)
{
ui->spinBox->setValue(num);
ui->horizontalSlider->setValue(num);
}
int smallWidget::getValue()
{
return ui->spinBox->value();
}
QString::number(s)//将数字转为字符串
QString.toInt()//将字符串转数字
界面如下:
可以通过下拉框或者点击按钮来设置值