2010-08-08 4 views
8

Ich habe einen Dialog mit QtDesigner erstellt. Es gibt ein QLineEdit Objekt im Dialog mit einigen Standardinhalten. Wenn der Dialog initialisiert wird und der Fokus auf QLineEdit geht, möchte ich, dass der Standardinhalt automatisch ausgewählt wird. Sobald der Benutzer mit dem Schreiben beginnt, wird der vorherige Inhalt überschrieben.Wählen Sie den Text von QLineEdit auf Fokus

EDIT:

Im Konstruktor:

dialog->accept(); 

und

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

Antwort

7

Anruf

lineEdit->selectAll(); 

nachdem Sie den Standardtext festgelegt haben. (Im Dialogfeld Konstruktor vielleicht.)

+0

Danke Ich habe es schon getan;) dialog-> accept(); {in Konstruktor} und verbinden (Dialog, SIGNAL (accepted()), QlineObj, SLOT (selectAll())); –

+0

Dies funktioniert im Konstruktor: QTimer :: singleShot (0, lineEdit, SLOT (selectAll())); – Zmey

5

Es gibt eine einfachere Methode, um fast das gleiche Verhalten zu erhalten, nämlich den Standardinhalt mit setPlaceholderText() anstelle von setText() zu setzen. Dies zeigt den Standardinhalt ausgegraut an und sobald QLineEdit den Fokus erhält, wird er verschwinden.