如何通过键盘或按钮(鼠标滚轮)检查QSpinBox值是否改变

时间:2015-06-24 16:05:36

标签: qt qspinbox

如果通过旋转框按钮或鼠标滚轮或向上或向下键更改了值,我需要将spinbox值设置为1,10,100,1000,10000中的一个。但如果键盘改变了价值,我需要其他行为。

这是我的按钮,鼠标滚轮,上下键的代码。

void Dlg::onValueChanged(int value)
{
    if (value > _value)
        value = (value - 1) * 10;

    value = log10(value);
    value = _Pow_int(10, value);

    _ui->spinBoxs->setValue(_value = value);
}

如何通过键盘进行值更改的其他行为?

1 个答案:

答案 0 :(得分:1)

在这种情况下,我认为您将创建源自QSpinBox的自定义Spinbox。您需要至少重新实现以下功能:

virtual void keyPressEvent( QKeyEvent* event );
virtual void wheelEvent( QWheelEvent* event );

符合您的规范。