6

我正在尝试使用 QSlider,但是如果有人单击位置 X,他想将滑块放置到该位置,滑块总是首先将值设置为最大值或最小值,然后设置为值 X。所以没有必要介入。我怎样才能避免这一步?

我在 QTDesigner 的帮助下实现了滑块。其余设置的代码如下:

_ui->horizontalSlider->setRange(1, aMaximalValue);
_ui->horizontalSlider->setValue(theCurrentValue);
connect(_ui->horizontalSlider, SIGNAL(valueChanged(int)), this, SLOT(onValueOfSliderChanged(int)));
4

2 回答 2

4

使用 QSlider 时,我的经验表明,当您单击滑块中位于当前位置右侧的某个位置(考虑水平滑块)时,它将通过 pageStep 大小增加滑块值。同样,如果单击值在当前位置的左侧,它将按 pageStep 大小减小滑块值。只有当您将滑块拖动到该位置时,它才会将值设置为您想要的值,而不是单击。尝试设置 pageStep 大小以查看是否是问题所在。

于 2012-09-14T05:58:59.843 回答
3

是的,就像 shubh 解释的那样,pagestep 可能太大了。QSlider 的一个常见问题是它们不会跳转到您单击的位置,而是朝那个方向移动一个页面步长。

这个问题已描述了该问题的解决方案

于 2013-07-26T22:41:09.133 回答