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?