Seite 1 von 1

QTest::keyClicks auf QSpinBox funktioniert nicht

Verfasst: 27. April 2009 11:59
von dermoritz
ich würde gerne eine Gui mit QSpinBox-en testen. Das Problem ist aber, dass die Spinbox die Keyboardeingabe per keyClicks ignoriert. Also wenn man:

Code: Alles auswählen

qDebug()<<"vorher"<<SpinBox>value();
SpinBox->clear();
QTest::keyClicks(SpinBox,"1234");
QTest::keyClick(SpinBox,Qt::Key_Enter);
qDebug()<<"nachher"<<SpinBox->value();
ist vorher immer gleich nachher. setValue funktioniert natürlich auch kann man den Wert ändern falls man keyboard tracking vorher für die Spinbox anschaltet - dann werden aber nicht alle Tasten "bemerkt". Außerdem ist das natürlich kein korrekter Test mehr.
interpretText() hab ich auch probiert - funktioniert nicht - es passiert nix.

Re: QTest::keyClicks auf QSpinBox funktioniert nicht

Verfasst: 27. April 2009 12:56
von neuschi
dermoritz hat geschrieben:ich würde gerne eine Gui mit QSpinBox-en testen. Das Problem ist aber, dass die Spinbox die Keyboardeingabe per keyClicks ignoriert. Also wenn man:

Code: Alles auswählen

qDebug()<<"vorher"<<SpinBox>value();
SpinBox->clear();
QTest::keyClicks(SpinBox,"1234");
QTest::keyClick(SpinBox,Qt::Key_Enter);
qDebug()<<"nachher"<<SpinBox->value();
ist vorher immer gleich nachher.
Bei mir funktioniert das einwandfrei (Qt 4.5.0) Kann es sein, dass deine Spinbox die Eingabe "1234" nicht akzeptiert? (Evtl. durch MinValue/MaxValue oder einen Validator)

Gruß, Ralf

Verfasst: 7. Mai 2009 16:48
von dermoritz
ein ähnliche antwort hab ich vom qt support erhalten - es leigt eventuell an der qt version.
es funktioniert jedoch einwandfrei wenn man anstelle von clear(), ein strg+a und dann ein del simuliert. also per tasttatur klicks das feld löscht.
wenn ich zeit hab wer ich mal auf das aktuelle qt umstellen und mich wieder melden.