2

スピンボックス ボタン、マウス ホイール、上下キーによって値が変更された場合は、スピンボックスの値を 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);
}

キーボードで値を変更するための他の動作を作成するにはどうすればよいですか?

4

1 に答える 1

1

この場合、 から派生したカスタム スピンボックスを作成することになると思いますQSpinBox。また、少なくとも次の関数を再実装する必要があります。

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

あなたの仕様で。

于 2015-06-24T16:14:57.983 に答える