2014-06-16 24 views
6

Bir QListWidget (gizli olan) ve bir QLineEdit bir 10 ad var diyelim. Şimdi Düzenle satırındaki "a" harfini yazıyorsam, "A" harfi ile başlayan liste parçacığındaki tüm bu isimlerin bir listesini görmesi gerekir. Kullanıcı bir fare veya klavye kullanarak seçebilir (çünkü dikey bir kaydırma çubuğu olacaktır). QLineEdit'un bunu yapabileceğinden emin değilim. Ama bunu başarmak için orada ne olduğunu bilmek isterim.Qt'deki aşağı açılır kelime önerileri nasıl yapılır?

cevap

18

QLineEdit ve QComboBox gibi widget'larda otomatik tamamlama için bir yol sağlayan QCompleter'u kullanabilirsiniz. Kullanıcı bir kelime yazmaya başladığında, QCompleter kelimesi, bir sözcük listesine dayanarak kelimeyi tamamlamanın olası yollarını önerir.

Qt belgelerine bir örnek:

QStringList wordList; 
wordList << "alpha" << "omega" << "omicron" << "zeta"; 

QLineEdit *lineEdit = new QLineEdit(this); 

QCompleter *completer = new QCompleter(wordList, this); 
completer->setCaseSensitivity(Qt::CaseInsensitive); 
lineEdit->setCompleter(completer); 
+0

Teşekkür Kötü bir deneyin bu verip Hatta elle verilerle 'QCompleter' doldurmak gerekmez geri – Rajeshwar

+2

sonrası, sadece modelini geçirebilmesi 'QListWidget'ınız zaten' QAbstractItemView :: model() 'işlevini çağırarak kullanıyor. – RobbieE

+0

Çok daha basit ve QtProject örneğinden daha çok noktaya. Teşekkürler. – bmahf