'class QWidget' has no member named 'setEditFocus', tab key simulation
-
ich möchte für einen gui tests einen tab key simulieren. per
QTest::keyClicks(QLineEdit,Qt::Key_Tab);
ist das auch kein Problem. Das Problem ist aber, das das Signal editingFinished() nicht ausgelöst wird (es wird bei Enter und Fokusverlust ausgelöst).
Nun dacht ich mir ich setze den Fokus auf false:aWidget->setEditFocus(false);
aber aus irgendeinem Grund meint der Compiler: 'class QWidget' has no member named 'setEditFocus'
das is doch einfach nicht wahr oder (andere Funktionen wie findChild funktionieren.) wo könnte das Problem liegen?(ich meine mich zu erinnern das ich das selbe Problem mit findChild(name) hatte und deshalb diesen thread eröffnet habe: http://www.c-plusplus.net/forum/viewtopic-var-t-is-239173-and-highlight-is-.html)
edit: einige ergänzungen:
der focus scheint gar nicht setzbar zu seinaWidget->hasFocus();
ist immer false und vorher
aWidget->setFocus(); nützt gar nix
. Ich hab keine Ahnung woran das liegt.
Um noch einmal auf die eigentliche Frage zurückzukommen: ich mus voidQLineEdit::editingFinished () [signal]
auslösen um korekt einen tab-key zu simulieren. Geht das eventuell auch ohne Focus verlust?
edit: wie eben beschrieben verwende ich "setFocus" zusammen mit "clearFocus" braucht man "setEditFocus" gar nicht.
-
http://doc.trolltech.com/4.5/qwidget.html#setEditFocus
Zitat:
void QWidget::setEditFocus ( bool enable )
If enable is true, make this widget have edit focus, in which case Qt::Key_Up and Qt::Key_Down will be delivered to the widget normally; otherwise, Qt::Key_Up and Qt::Key_Down are used to change focus.
This feature is only available in Qt for Embedded Linux.
See also hasEditFocus() and QApplication::keypadNavigationEnabled().
-
danke
aber ich hab auch eine Lösung für das eigentliche Problem:
die ganze fokussetzerei funktioniert nur wenn das widget sichtbar ist. per
aWidget->show()
erreicht man das. danach funktioniert die tab-key simulation auch ohne weiteres.
letztendlich muss man also für korrekte gui-tests, diese tests sichtbar machen - oder?