这不是溢出。QDial会跟随光标的位置,无论它去到哪里,因此当光标靠近0时,值将被设置为0,而不考虑先前的值。如果您想更改此行为,您需要创建自己的小部件(可以基于QDial进行继承或组合),在其中还要跟踪鼠标的位置,以强制用户按顺序遍历所有值。另外,您说问题在于数值的变化非常陡峭,并且该值稍后会在硬件中使用。在这种情况下,您应该在GUI和硬件之间有一种控制器类,以确保值对于硬件是正确的。
https://doc.qt.io/qt-6/qdial.html 虽然我在谈论qt6,而且这个问题很旧了... 范围和返回的值与小部件的外观无关。 通过设置属性from、to和stepSize,您可以获得任何您想要的值。 外观被锁定,如果您想解决这个问题,您将不得不创建一个自定义小部件。
在QDial属性中,转到QDial组并启用“wrapping”,这将解决您的问题 :)该值是连续的。小于0的值将为-1、-2等,而大于最大值的值也将继续增加。因此,您需要使用模运算来计算实际值,但这比创建新控件要容易得多且更快速。