准备两个cpp,一个是包含QSpinBox的cpp,一个是需要获得SpinBox改变的值
1、在QSpinBox的类中(可能是QWidget)中增加一个信号void spinBoxChanged(QString)
2、对于一个QSpinBox会有一个valueChanged的信号槽,假设你已经实现了这个槽函数中,并且在这个槽函数中得到了改变后的值,然后emit spinBoxChanged(changeValue)
3、再在另一个需要获得SpinBox的cpp对应的类(假设是QClass)中增加一个与信号函数的参数相同的槽函数
void slotSpinBoxChanged(QString).并实现之
4、连接两个对象的信号和槽,一般在初始化中连接
可能写的不太好懂,为了简单,你可以利用QT的一个信号对应多个槽的机制,不需要自己发信号,直接把槽函数和QSpinBox的valueChanged信号相连,这样就更简单了。
项目中用到了一组范围,可是Qt中自带的QSlider只有一个滑块,不满足需求,需要实现一个带有两个滑块的Slider。
首先在界面上引用一个QSlider类,如下图
然后在QSlider上,右键:
提升类的名称填入QxtSpanSlider,头文件自动生成的为小写,改为QxtSpanSlider.h
点击添加,提升后运行程序:
滑块的两个值改变后会发出信号lowerValueChanged和upperValueChanged
测试程序源码地址
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)