0

我的问题是,如何在 spinbox( I required double spinbox (QDoubleSpinBox)) 中的“value”增加/减少之前控制 stepSize 和“currentvalue”?

注意: 我知道,存在“valueChanged”信号,但是只有在当前值递增/递减后才会调用插槽

4

1 回答 1

1

在第二条评论中,我指出您误解了QAbstractSpinBox::stepBy.

因此,当您进行子类化时,QDoubleSpinBox您可以这样做:

void SubclassOfDoubleSpinBox::stepBy(int steps) {
    if (steps>0) {
       if (steps>=10) { // note some events call stepBy with step value 10 or -10
           setSingleStep(incrementStep10());
       } else {
           setSingleStep(incrementStep1());
       }
    } else {
       if (steps<=-10) {
           setSingleStep(decrementStep10());
       } else {
           setSingleStep(decrementStep1());
       }
    }

    QDoubleSpinBox::stepBy(steps);
}

这将使用对数递增递减逻辑完成工作。

于 2014-10-17T07:44:58.767 回答