将控件封装在ui界面中,通过其他界面提升来使用自定义控件。提升之后进行qmake
QSlider与QSpinBox的封装
通过信号和槽连接两个控件,因为
&QSpinBox::valueChanged是个重载函数,所以写一个函数指针来替换他。
void(QSpinBox::*spinbox)(int)=&QSpinBox::valueChanged;
connect(ui->spinBox,spinbox,ui->horizontalSlider,&QSlider::setValue);
connect(ui->horizontalSlider,&QSlider::valueChanged,ui->spinBox,&QSpinBox::setValue);
★将slider和spinbox封装在一个
sliderAndspinbox.ui文件里,在widget.ui里通过widget部件进行提升,
示例:点击读取按钮进行当前值的读取,点击设置按钮设置值为50
将读取和设置函数在.h文件里声明.cpp文件里实现,在.cpp文件里要加上作用域
.h文件(声明)
void setnum(int num);
int getnum();
.cpp文件(实现)
//设置
void sliderAndspinbox::setnum(int num)
{
ui->spinBox->setValue(num);
}
//读取
int sliderAndspinbox::getnum()
{
return ui->spinBox->value();
}
在widget文件通过ui调用提升部件widget里面的函数。
void Widget::on_pushButton_clicked()
{
ui->widget->getnum();
qDebug()<< ui->widget->getnum();
}
void Widget::on_pushButton_2_clicked()
{
ui->widget->setnum(50);
}