1 添加一个Qt设计师界面类
选择Widget
选择类名
2 设计这个自定义控件的ui
3 因为这个控件的父类是QWidget, 所以要使用的话要先拖一个Widget容器到界面上
选中-右键-提升为
4 这样这个控件就能显示在主窗口了
5 接下来写代码实现 调整spinBox的值,滑动条位置也相应改变
SmallWidget::SmallWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::SmallWidget)
{
ui->setupUi(this);
void (QSpinBox::*sig)(int) = &QSpinBox::valueChanged;
connect(ui->spinBox, sig, ui->horizontalSlider, &QSlider::setValue); // spin 控 slider
connect(ui->horizontalSlider,&QSlider::valueChanged,ui->spinBox,&QSpinBox::setValue); // slider 控 spin
}
6 再实现主窗口获取值 与 设置值
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
// 设置值
connect(ui->btn_Set,&QPushButton::clicked,[=](){
ui->smwidget->SetValue(50);
});
// 获取值
connect(ui->btn_Get,&QPushButton::clicked,[=](){
qDebug() << "当前值为: " << ui->smwidget->GetValue();
});
}
// smallwidget.cpp
void SmallWidget::SetValue(int v)
{
ui->spinBox->setValue(v);
}
int SmallWidget::GetValue()
{
return ui->spinBox->value();
}