2010-08-08 13 views
8

J'ai créé une boîte de dialogue en utilisant QtDesigner. Il y a un objet QLineEdit dans la boîte de dialogue avec un contenu par défaut. Lorsque la boîte de dialogue s'initialise et que l'accent est mis sur QLineEdit, je souhaite que le contenu par défaut soit automatiquement sélectionné. Ainsi, une fois que l'utilisateur a commencé à écrire, le contenu précédent sera remplacé.Sélectionner le texte de QLineEdit au focus

EDIT:

dans le constructeur:

dialog->accept(); 

et

connect(dialog, SIGNAL(accepted()), QlineObj, SLOT(selectAll())); 

Répondre

7

Appel

lineEdit->selectAll(); 

après avoir défini le texte par défaut. (Dans le constructeur de dialogue, peut-être.)

+0

Merci, je l'ai déjà fait;) dialog-> accept(); {in constructor} et connect (dialog, SIGNAL (accepté()), QlineObj, SLOT (selectAll())); –

+0

Cela fonctionne dans le constructeur: QTimer :: singleShot (0, lineEdit, SLOT (selectAll())); – Zmey

5

Il existe une méthode plus simple pour obtenir presque le même comportement, qui est de définir le contenu par défaut en utilisant setPlaceholderText() au lieu de setText(). Cela affichera le contenu par défaut grisé et dès que les gains QLineEdit se concentreront, il disparaîtra.