我想将QSlider连接到QDoubleSpinBox,但是虽然代码可以很好地编译并且可以在简单的QSpinBox上运行,但对于QDoubleSpinBox却不起作用
QSlider *horizontalSlider1 = new QSlider();
QDoubleSpinBox *spinBox1 = new QDoubleSpinBox();
connect(spinBox1, SIGNAL(valueChanged(double)),horizontalSlider1,SLOT(setValue(double)) );
connect(horizontalSlider1,SIGNAL(valueChanged(double)),spinBox1,SLOT(setValue(double)) );
最佳答案
QSlider和QDoubleSpinBox在valueChanged
/setValue
中采用不同类型的参数(当然,QSlider使用int,QDoubleSpinBox使用 double )。更改滑块信号和插槽的参数类型可能会有所帮助:
connect(spinBox1, SIGNAL(valueChanged(double)),horizontalSlider1,SLOT(setValue(int)) );
connect(horizontalSlider1,SIGNAL(valueChanged(int)),spinBox1,SLOT(setValue(double)) );
我不确定Qt是否可以为您自动处理这种类型转换。如果不是,则必须定义自己的插槽以在正确的对象上调用setValue()
关于qt - 如何将QSlider连接到QDoubleSpinBox,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8791621/