gpt4 book ai didi

c++ - 子类 QDial 如何停止从 Min 到 Max 的移动?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:46:23 25 4
gpt4 key购买 nike

我想继承QDial,因为当您处于最小值时,您可以轻松地将值更改为最大值(通过向下)。从最大到最小都是同样的问题。

为了做到这一点,我知道我必须继承 QDial。但我不知道从哪里开始。

最佳答案

我可能会为您提供一些指导......让我们试试。

首先你应该从QDial开始,而不是QAbstractSlider,因为你应该重新实现的目标方法是

  • virtual void mouseMoveEvent(QMouseEvent *e)
  • virtual void mousePressEvent(QMouseEvent *e)
  • virtual void mouseReleaseEvent(QMouseEvent *e)

它处理鼠标操作,如名称状态。看着 source您可以看到,问题的方法只是尝试将光标位置映射到有效的拨号位置。这里发生了“跳转”,你想禁用它(我尝试了几个控制键(向上/向下翻页、向上/向下箭头、鼠标滚轮和鼠标单击/拖动),只有单击你才能跳过未定义的值。 ).此外,您可能希望将 pageStep 设置为您的应用程序支持的值。


作为一种解决方案,我可能会建议您采用 valueFromPoint 方法的结果并递减或递增(如果值较小或较大)当前值,而不是将其设置为结果。这应该禁用跳跃。

Qt 5.6.0

关于c++ - 子类 QDial 如何停止从 Min 到 Max 的移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37519339/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com