—— 均为自学笔记,如有错误请指正
1. 右击项目添加新文件
2. 封装 <ui部分>
- 全局包含选框,可点可不点。< 点了方便下次提升同一控件>
- 类名写完后点击 "添加" 按钮
- 点击 "提升" 按钮
3. 若还有其他控件
4. 封装控件 功能&接口 实现
- 第一步:点击按钮1,获取当前的值;点击按钮2,设置为值的一半
SmallWidget::SmallWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::SmallWidget)
{
ui->setupUi(this);
//QSpinBox 移动 QSlider跟着移动
void(QSpinBox:: * spSignal)(int) = &QSpinBox::valueChanged;
connect(ui->spinBox,spSignal,ui->horizontalSlider,&QSlider::setValue);
//QSlider 滑动 QSpinBox数字跟着改变
connect(ui->horizontalSlider,&QSlider::valueChanged,ui->spinBox,&QSpinBox::setValue);
}
- 第二步:在控件的.h文件中,进行槽函数声明 < public下 >
//声明槽函数
//设置数字
void setNum(int num);
//获取数字
int getNum(); //注意返回值类型
- 第三步:在控件的.cpp文件中,对槽函数进行定义 < 不在默认的构造函数中 >
//两个对外提供接口
//设置数字
void SmallWidget::setNum(int num)
{
ui->spinBox->setValue(num);
}
//获取数字
int SmallWidget::getNum()
{
return ui->spinBox->value();
}
- 第四步:在widget.cpp文件中,使用自定义控件
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
//点击获取 获取到控件当前的值
connect(ui->btn_get,&QPushButton::clicked,[=](){
qDebug() << ui->widget->getNum(); //此时的widget是封装的控件的名称
});
//点击设置 获取到控件值的一半
connect(ui->btn_set,&QPushButton::clicked,[=](){
ui->widget->setNum(50); //此时的widget是封装的控件的名称
});
}