我正在使用QSlider(v4.6)进行输入,并向用户提供反馈。对于反馈,我将调用SetValue方法。我试图找到只有在用户修改值时才会触发的信号。当用户更改值以及我调用setValue时,Valuechend的信号会发射。仅当用户拖动滑块时(不使用键盘时),Slidermed仅发射。我检查了API文档,似乎找不到任何东西。我想念什么吗?这似乎很普遍。如果没有其他信号,您将如何建议我模拟此功能?我应该在调用setValue之前设置标志,每次调用setValue时,断开并重新连接信号...?

有帮助吗?

解决方案

好问题,我检查了API,也找不到只有在用户修改值时才能触发的信号。您提出的解决方法可能是唯一的选择,请记住,您不必断开 /连接所有信号,只需使用 QObject::blockSignals 方法:

slider->blockSignals(true);
slider->setValue(x);
slider->blockSignals(false);

希望有帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top