如何在Qt中完成下拉单词建议?

Raj*_*war 7 c++ qt autocomplete qlineedit drop-down-menu

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

Nej*_*jat 20

您可以使用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);
Run Code Online (Sandbox Code Playgroud)

  • 你甚至不需要手动填充`QCompleter`数据,你可以通过调用`QAbstractItemView :: model()`函数传递你的`QListWidget`已经使用的模型. (2认同)