Qt6学习笔记九(自定义控件封装)

简介: Qt6学习笔记九(自定义控件封装)

一、自定义类

为了实现自定义类,也可以用ui界面拖拽控件,可以选择Qt设计师界面类,会生成.h、.cpp、.ui这3个文件

取名为smallWidget

在samllwidget.ui中放入一个Spin Box和Horizontal Slider

然后设计一下界面如下图所示

二、提升

为在主窗口中显示这个自定义控件

在widget.ui中也放置一个widget控件(因为smallwidget.ui的主体是widget)

然后右击widget选择-》提升

提升类的名称为smallWidget(可以在smallwidget.h的头文件中查看具体类名,复制过来保证万无一失),然后点击添加,最后点击提升

(如果点击全局包含,下次再次使用widget提升的时候,就可以直接选smallWidget了)

提升完后,右侧的widget的类变成了smallWidget了

直接看widget.ui界面

运行后,就能显示了

三、功能实现

1.实现功能

目的是实现

  • QSpinBox移动 QSlider跟着移动
  • QSlider滑动 QSpinBox数字跟着改变

首先

文档查找QSpinBox

找到其信号,只需要使用valueChanged即可

文档查找水平滑块的槽函数

但是直接找QHorizontalSlider是找不到的,可以看到是属于QSlider,查QSlider即可

但是QSlider没有槽函数,因此找其父类QAbstractSlider

可以找到槽函数了,只需要使用setValue即可

//QSpinBox移动  QSlider跟着移动
connect(ui->spinBox,&QSpinBox::valueChanged,ui->horizontalSlider,&QSlider::setValue);//查阅信号和槽函数文档即可
//QSlider滑动  QSpinBox数字跟着改变
connect(ui->horizontalSlider,&QSlider::valueChanged,ui->spinBox,&QSpinBox::setValue);

这样就能实现上述的功能了

2.对外提供接口

目的:

  • 通过按钮去设置值
  • 通过按钮去获取值

如果还有其他需求,比如获取上面的数字,我们可以对外提供接口

在smallwidget.h的public中声明

void setNum(int num);
int getNum();

在smallwidget.cpp中实现

void smallWidget::setNum(int num){
    ui->spinBox->setValue(num);
}
int smallWidget::getNum(){
    return ui->spinBox->value();
}

这样子就提供了2个接口

接下去对按钮进行 关联(使用上述2个接口)在widget.cpp中

//点击获取  获取当前的值
connect(ui->btn_get,&QPushButton::clicked,[=](){
    qDebug() << ui->widget->getNum();
});
//设置到一半
connect(ui->btn_set,&QPushButton::clicked,[=](){
    ui->widget->setNum(50);
});

总结

相关文章
|
2月前
【Qt 学习笔记】Qt窗口 | 标准对话框 | 消息对话框QMessageBox
【Qt 学习笔记】Qt窗口 | 标准对话框 | 消息对话框QMessageBox
311 4
【Qt 学习笔记】Qt窗口 | 标准对话框 | 消息对话框QMessageBox
|
2月前
|
开发者
【Qt 学习笔记】Qt系统相关 | Qt事件 | 事件的介绍及基本概念
【Qt 学习笔记】Qt系统相关 | Qt事件 | 事件的介绍及基本概念
149 4
|
2月前
【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog
362 4
|
2月前
|
数据安全/隐私保护
【Qt 学习笔记】Qt窗口 | 对话框 | 模态与非模态对话框的创建
【Qt 学习笔记】Qt窗口 | 对话框 | 模态与非模态对话框的创建
210 4
|
2月前
|
搜索推荐 C++
【Qt 学习笔记】Qt窗口 | 对话框 | 创建自定义对话框
【Qt 学习笔记】Qt窗口 | 对话框 | 创建自定义对话框
43 4
|
2月前
|
API UED
【Qt 学习笔记】Qt窗口 | 状态栏 | QStatusBar的使用及说明
【Qt 学习笔记】Qt窗口 | 状态栏 | QStatusBar的使用及说明
167 4
|
2月前
【Qt 学习笔记】Qt窗口 | 标准对话框 | 输入对话框QInputDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 输入对话框QInputDialog
114 3
|
2月前
|
数据可视化
【Qt 学习笔记】Qt窗口 | 标准对话框 | 字体对话框QFontDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 字体对话框QFontDialog
52 3
|
2月前
【Qt 学习笔记】Qt窗口 | 标准对话框 | 颜色对话框QColorDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 颜色对话框QColorDialog
249 3
|
2月前
【Qt 学习笔记】Qt窗口 | 对话框 | Qt对话框的分类及介绍
【Qt 学习笔记】Qt窗口 | 对话框 | Qt对话框的分类及介绍
83 3
下一篇
无影云桌面