如何在Qt中实现下拉词建议

How to accomplish drop down word suggestions in Qt?

本文关键字:实现 Qt      更新时间:2023-10-16

假设我在QListWidget(隐藏)和QLineEdit中有10个名字。现在,如果我在Edit行中输入字母"a",它应该显示列表小部件中以字母"a"开头的所有名称的下拉列表。用户可以使用鼠标或键盘进行选择(因为会有一个垂直滚动条)。我不确定QLineEdit是否可以做到这一点。但我想知道有什么可以做到这一点。

您可以使用QCompleter,它为像QLineEditQComboBox这样的小部件提供了一种自动完成的方式。当用户开始输入一个单词时,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);