首页 > 解决方案 > 达到限制后自动旋转值的自定义 qt spinbox

问题描述

我希望我的 Qt Spin-box 在用户到达值范围的两端时旋转值。

例如,让我的范围是 0 到 10,增量为 2。当值已经为 10 时单击旋转框的增量按钮后,通常什么也没有发生。但我希望它将值旋转回第一个值为 0 的值。

我必须重写哪个成员函数来捕获用户尝试更改 QSpinBox 类中的值的事件?

class MyCustomSpinBox : public QSpinBox
{
    // override this function to get the effect of rotating
    void override_func()
    {
    // code to rotate the value 
    }
};

或者,是否已经存在它的某些属性,以便我可以在 qt-creator 中设置(可能)以获得相同的旋转值效果?

谢谢。

标签: c++qtqt5qspinbox

解决方案


你可以只启用 wrapping 。

例如。

QSpinBox *spinBox = new QSpinBox(this);
spinBox->setRange(0, 100);
spinBox->setWrapping(true);
spinBox->setValue(100);
spinBox->stepBy(1);
// value is 0

在此处输入图像描述


推荐阅读