【问题标题】:QSlider makes unnecessary stepsQSlider 做了不必要的步骤
【发布时间】:2012-09-06 17:39:19
【问题描述】:

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

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

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

【问题讨论】:

    标签: qt qslider


    【解决方案1】:

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

    this question 中描述了该问题的解决方案

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 非常感谢,这是一个很好的提示,但遗憾的是我仍然无法解决问题。但这有助于更好地理解问题。我正在使用 QProgressDialog,因为更改滑块值的操作会导致计算耗时。结果,滑块似乎工作得更好,因为在按 pageStep 大小增加值之后,它似乎也得到了将其设置为我单击的值的信号。
      猜你喜欢
      • 2013-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-17
      • 1970-01-01
      • 2015-10-11
      • 2016-05-17
      相关资源
      最近更新 更多