2010-08-08 10 views
8

QtDesigner kullanarak bir iletişim kutusu oluşturdum. Bazı varsayılan içeriğe sahip iletişim kutusunda QLineEdit nesnesi vardır. İletişim kutusu başlatıldığında ve odak QLineEdit'a gittiğinde, varsayılan içeriğin otomatik olarak seçili olmasını isterim, böylece kullanıcı yazmaya başladığında, önceki içeriğin üzerine yazılır.Odakta QLineEdit metnini seçin

DÜZENLEME: Yapıcıda

:

dialog->accept(); 

ve

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

cevap

7

Çağrısı

lineEdit->selectAll(); 
Varsayılan metni ayarladıktan sonra

. (İletişim kurucusunda, belki.)

+0

Teşekkürler zaten yaptım;) dialog-> accept(); {yapıcı} ve bağlayın (iletişim kutusu, SIGNAL (kabul edilen()), QlineObj, SLOT (selectAll())); –

+0

Bu yapıcıda çalışır: QTimer :: singleShot (0, lineEdit, SLOT (selectAll())); – Zmey

5

Hemen hemen aynı davranışı elde etmek için daha basit bir yöntem vardır; bu, setText() yerine setPlaceholderText() öğesini kullanarak varsayılan içeriği ayarlamaktır. Bu, varsayılan içeriğin grileştirildiğini gösterir ve QLineEdit odağı kazanır ulaşmaz ortadan kalkacaktır.