> 文章列表 > QT笔记之QSpinBox和QSlider的封装使用

QT笔记之QSpinBox和QSlider的封装使用

QT笔记之QSpinBox和QSlider的封装使用

文章目录

      • 1.创建QT测试工程
      • 2.右键添加-新建项
      • 3.添加新的Qt Widget Class,叫做MySpinBox_Slider【QSpinBox和QSlider的组合使用】
      • 4.添加好QSpinBox和QSlider两个控件,并且调整好布局:
      • 5.在主程序ui中添加Container的Widget控件:
      • 6.右键Test工程-重新编译,发现报错:
      • 7.处理QSpin和QSlider两个控件的信号和槽,一个数值变化,另一个也应该跟着变化。
      • 8.看看效果:

1.创建QT测试工程

QT笔记之QSpinBox和QSlider的封装使用
QT笔记之QSpinBox和QSlider的封装使用

2.右键添加-新建项

3.添加新的Qt Widget Class,叫做MySpinBox_Slider【QSpinBox和QSlider的组合使用】

QT笔记之QSpinBox和QSlider的封装使用
QT笔记之QSpinBox和QSlider的封装使用
==注意:==这里基类选择QWidget
QT笔记之QSpinBox和QSlider的封装使用

4.添加好QSpinBox和QSlider两个控件,并且调整好布局:

QT笔记之QSpinBox和QSlider的封装使用
QT笔记之QSpinBox和QSlider的封装使用

5.在主程序ui中添加Container的Widget控件:

QT笔记之QSpinBox和QSlider的封装使用
右键选中这个Widget控件,点击提升为:
QT笔记之QSpinBox和QSlider的封装使用
QT笔记之QSpinBox和QSlider的封装使用
完成后的效果:
QT笔记之QSpinBox和QSlider的封装使用

6.右键Test工程-重新编译,发现报错:

这可能是VS2019的错误,同样用Qt Creator 8.0.1 (Community)就不会有错。
QT笔记之QSpinBox和QSlider的封装使用
解决方法:
a.删除16行的 #include <myspinbox_slider.h>
b.选中类MySpinBox_Slider,Alt加回车键,重新添加头文件 #include “…/…/…/MySpinBox_Slider.h”

QT笔记之QSpinBox和QSlider的封装使用
c.这时,记住不要重新编译工程,否则又会报错不知道什么原因。直接F5调试就可以跑起来。

QT笔记之QSpinBox和QSlider的封装使用

7.处理QSpin和QSlider两个控件的信号和槽,一个数值变化,另一个也应该跟着变化。

在MySpinBox_Slider.cpp文件中处理事件响应

#include "MySpinBox_Slider.h"MySpinBox_Slider::MySpinBox_Slider(QWidget *parent): QWidget(parent)
{ui.setupUi(this);connect(ui.spinBox, &QSpinBox::valueChanged, ui.horizontalSlider, &QSlider::setValue);connect(ui.horizontalSlider, &QSlider::valueChanged, ui.spinBox, &QSpinBox::setValue);
}MySpinBox_Slider::~MySpinBox_Slider()
{}

8.看看效果:

QT笔记之QSpinBox和QSlider的封装使用