QLineEdit->selectAll() im EventFilter
Verfasst: 5. Januar 2012 20:32
Hallo Gemeinde, ich habe folgenden Code:
[1] funktioniert scheinbar nicht soll heißen: der Text wird komplett markiert (kann also unmittelbar danach mit selectedText() abgerufen werden, aber irgendwas danach macht das wieder zunichte, so dass der Text dann im Endeffekt wieder nicht mehr markiert ist. :/
Meine Fragen lautet nun:
Code: Alles auswählen
bool MainWindow::eventFilter(QObject *object, QEvent *event)
{
if (object == ui->lineEditUrl)
{
if (event->type() == QEvent::FocusIn)
{
ui->lineEditUrl->selectAll(); /* funktioniert scheinbar nicht [1]*/
QTimer::singleShot(0, object, SLOT(selectAll())); /* funktioniert */
}
}
return false;
}Meine Fragen lautet nun:
- Was zum Teufel passiert dann noch, dass die Markierung wieder weg geht?
- Warum funktioniert der Aufruf über einen Timer?
- Gibt es eine best practice, wie man das Problem lösen kann (Markieren des Textes wenn ein LineEdit den Fokus bekommt)?
- Gibt es irgendwo in der Doku eine Stelle, wo ich nachlesen kann in welcher Reihenfolge welche Events wo abgearbeitet werden?