2009-06-08 4 views
4

J'ai un problème avec QLineEdit. Même si je règle l'ordre de tabulation pour commencer à cette édition de ligne, une fois l'écran chargé, le LIne Edit n'obtiendra pas la mise au point automatiquement.Qt 4.5 Focus ne fonctionne pas sur QLineEdit

J'ai aussi essayé avec ces deux lignes:

this->activateWindow(); 
this->lineEdit_password->setFocus(); 

Mais cela n'a encore aucun effet. quelqu'un Alors peut-être connu le même problème ...

Merci d'avance pour votre aide, Boris

+1

En tant que test initial, vous pouvez essayer de surcharger showEvent() pour la fenêtre. Dans showEvent(), appelez 'this-> lineEdit_password-> setFocus();' – Krsna

Répondre

8

Une autre solution consiste à utiliser une minuterie SingleShot:

QTimer::singleShot(0,lineEdit,SLOT(setFocus())); 

L'accent sera alors mis une fois que l'application est gratuite. Boris.

2

Merci beaucoup Krsna, redéfinissant la showEvent() du QWidget fonctionnera:

void OScreenLogin::showEvent(QShowEvent* e){ 
    this->activateWindow(); 
    this->lineEdit_password->setFocus(); 
    QWidget::showEvent(e); 
} 

La ligneEdit obtient le focus, je suppose qu'un autre widget a eu le focus défini après ces deux lignes. Merci encore, Boris

Questions connexes