如何避免QDial控件中的环绕?

时间:2017-04-10 10:55:18

标签: c++ qt user-interface qdial

我有一个QDial控件,我想/需要阻止跳转或在最小值和最大值之间进行环绕。

animation of the behavior to avoid

我在文档中找不到任何内容,也找不到属性。

这可能吗?

2 个答案:

答案 0 :(得分:1)

这不是溢出。无论光标位于何处,QDial都会跟随光标的位置,因此当光标接近0时,无论之前的值如何,该值都将设置为0.

如果你想改变这种行为,你将不得不创建自己的小部件(它可以通过继承或组合基于QDial),你还可以跟踪鼠标去哪里强迫用户查看所有值按顺序。

此外,您说的问题是您的价值发生了急剧变化,而且后者在硬件中使用了该值。在这种情况下,您应该在GUI和硬件之间使用一种控制器类,以确保硬件的值正确。

答案 1 :(得分:-1)

在QDial属性中,转到QDial组并启用“换行”,这将解决您的问题:)

价值比连续。低于0将是-1,-2,......并且高于你的最大值它也将继续。因此,您必须使用模数计算实际值,但这比创建新控件更容易,更快。