如果通过旋转框按钮或鼠标滚轮或向上或向下键更改了值,我需要将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);
}
如何通过键盘进行值更改的其他行为?
答案 0 :(得分:1)
在这种情况下,我认为您将创建源自QSpinBox
的自定义Spinbox。您需要至少重新实现以下功能:
virtual void keyPressEvent( QKeyEvent* event );
virtual void wheelEvent( QWheelEvent* event );
符合您的规范。