我使用 QSlider (v4.6) 进行输入并向用户提供反馈。对于反馈,我将调用 setValue 方法。我试图找到一个仅当用户修改该值时才会触发的信号。当用户更改值以及我调用 setValue 时,将触发 valueChanged 信号。 sliderMoved 仅在用户拖动滑块时触发(而不是在使用键盘时触发)。我检查了API文档,似乎找不到任何东西。我错过了什么吗?这似乎是很常见的事情。如果没有其他信号,您建议我如何模拟此功能?我应该在调用 setValue 之前设置一个标志,每次调用 setValue 时断开并重新连接信号...?
好问题,我检查了 API,也找不到只有用户修改值时才会触发的信号。您提出的解决方法可能是唯一的选择,请记住,您不必断开/连接所有信号,只需使用QObject::blockSignals
method:
slider->blockSignals(true);
slider->setValue(x);
slider->blockSignals(false);
希望有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)