2014-06-16 1 views
6

QListWidget (숨김)과 QLineEdit에 10 개의 이름이 있다고 가정 해보십시오. 이제 편집 줄에 문자 "a"를 입력하면 목록 위젯에서 문자 "A"로 시작하는 모든 이름의 드롭 다운을 표시해야합니다. 사용자는 마우스 나 키보드를 사용하여 선택할 수 있습니다 (수직 스크롤 막대가 있기 때문에). QLineEdit이이 작업을 수행 할 수 있는지 확실하지 않습니다. 그러나 나는 이것을 달성하기 위해 무엇이 있는지 알고 싶습니다.Qt에서 단어 제안을 삭제하는 방법은 무엇입니까?

답변

18

QLineEditQComboBox과 같은 위젯에서 자동 완성 방법을 제공하는 QCompleter을 사용할 수 있습니다. 사용자가 단어를 입력하기 시작하면 QCompleter은 단어 목록을 기반으로 단어를 완성 할 수있는 방법을 제시합니다.

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

덕분에 병이 시도이를 포기하고 심지어 데이터를 수동으로'QCompleter'를 채울 필요가 없습니다 다시 – Rajeshwar

+2

를 게시, 당신은 단지 모델을 통과 할 수 'QListWidget'은 이미'QAbstractItemView :: model()'함수를 호출하여 사용하고 있습니다. – RobbieE

+0

QtProject 예제보다 훨씬 간단하고 중요한 부분입니다. 감사. – bmahf