2014-06-16 15 views
6

Giả sử tôi có 10 tên trong số QListWidget (bị ẩn) và một số QLineEdit. Bây giờ nếu tôi gõ chữ "a" trong dòng Edit nó sẽ hiển thị một danh sách thả xuống của tất cả những tên đó trong tiện ích danh sách bắt đầu bằng chữ cái "A". người dùng có thể chọn bằng chuột hoặc bàn phím (vì sẽ có thanh cuộn dọc). Tôi không chắc chắn nếu một QLineEdit có thể làm điều này. Nhưng tôi muốn biết cái gì ở ngoài kia để thực hiện điều này.Làm cách nào để thực hiện các gợi ý từ thả xuống trong Qt?

Trả lời

18

Bạn có thể sử dụng QCompleter cung cấp cách tự động hoàn thành trong các tiện ích con như QLineEditQComboBox. Khi người dùng bắt đầu nhập một từ, QCompleter đề xuất các cách có thể hoàn thành từ, dựa trên danh sách từ.

Một ví dụ từ các tài liệu Qt:

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

Cảm ơn Ill cho một thử này và gửi lại – Rajeshwar

+2

Bạn thậm chí không cần phải cư trú trong 'QCompleter' với dữ liệu bằng tay, bạn chỉ có thể vượt qua các mô hình mà 'QListWidget' của bạn đã sử dụng bằng cách gọi hàm' QAbstractItemView :: model() '. – RobbieE

+0

Tôi rất đơn giản và dễ hiểu hơn so với ví dụ về QtProject. Cảm ơn. – bmahf

Các vấn đề liên quan