1.创建QT测试工程
2.右键添加-新建项
3.添加新的Qt Widget Class,叫做MySpinBox_Slider【QSpinBox和QSlider的组合使用】
==注意:==这里基类选择QWidget
4.添加好QSpinBox和QSlider两个控件,并且调整好布局:
5.在主程序ui中添加Container的Widget控件:
右键选中这个Widget控件,点击提升为:
完成后的效果:
6.右键Test工程-重新编译,发现报错:
这可能是VS2019的错误,同样用Qt Creator 8.0.1 (Community)就不会有错。
解决方法:
a.删除16行的 #include <myspinbox_slider.h>
b.选中类MySpinBox_Slider,Alt加回车键,重新添加头文件 #include “…/…/…/MySpinBox_Slider.h”
c.这时,记住不要重新编译工程,否则又会报错不知道什么原因。直接F5调试就可以跑起来。
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.看看效果: