想要把其他ui文件封装到指定ui中,首先要创建一个新文件,右键点击文件树的最顶层点击添加新文件,如下图添加一个新的ui文件。
这样可以添加一个新的ui文件。文件名可以随意起,我起个samllerwidget。
目录中便会出现该文件。然后对samllerwidget.ui文件进行设计和封装,比如我先设计为这样:
然后我再主界面中(mainwindow.ui)挑选出同样大小的区域添加一个widget区域:
然后右键点击该区域,选中提升为,然后填写提升的类名称,这里注意一定要把要组装的ui文件的名称写对,
写完之后点击添加,会显示如下:再点提升,如此组装完毕。
点击运行主界面运行结果如下:
接下来将滑动按钮和数字显示封装在一起:
// QspinBox数字移动->滑动移动
void(QSpinBox::*pro)(int) = &QSpinBox::valueChanged;
connect(ui->spinBox,pro,ui->horizontalSlider,&QSlider::setValue);
// 滑动移动->数字移动
connect(ui->horizontalSlider,&QSlider::valueChanged,ui->spinBox,&QSpinBox::setValue);
封装在一起后滑动按钮或者改变数字,另一个控件都会跟着变化。
当然这里后续还可以更改,比如添加按钮获取当前数值和调整当前数值:
那么首先便需要设置接口:
smallerwidget.cpp->接口
//设置接口
//设置数字
void samllerwidget::setNum(int num){
ui->spinBox->setValue(num);
}
//获取数字
int samllerwidget::getNum(){
return ui->spinBox->value();
}
samllerwidget.h ->声明
class samllerwidget : public QWidget
{
Q_OBJECT
public:
explicit samllerwidget(QWidget *parent = nullptr);
~samllerwidget();
//设置数字
void setNum(int num);
//获取数字
int getNum();
mainwindow.cpp->调用
//点击获取 获取当前控件的值
connect(ui->pushButton,&QPushButton::clicked,[=](){
qDebug()<<ui->widget->getNum();
});
//设置到一半
connect(ui->pushButton_2,&QPushButton::clicked,[=](){
ui->widget->setNum(50);
});