假设我有一个包含10个名称的QListWidget
(它是隐藏的)和一个QLineEdit
。现在,如果我在行编辑器中输入字母“a”,它应该显示一个下拉列表,其中包含所有以字母“A”开头的名称列表小部件中的名称。用户可以使用鼠标或键盘进行选择(因为将有垂直滚动条)。我不确定QLineEdit
是否能够实现这一点。但我想知道有什么方法可以完成这个任务。
假设我有一个包含10个名称的QListWidget
(它是隐藏的)和一个QLineEdit
。现在,如果我在行编辑器中输入字母“a”,它应该显示一个下拉列表,其中包含所有以字母“A”开头的名称列表小部件中的名称。用户可以使用鼠标或键盘进行选择(因为将有垂直滚动条)。我不确定QLineEdit
是否能够实现这一点。但我想知道有什么方法可以完成这个任务。
QCompleter
,它提供了一种在像QLineEdit
和QComboBox
这样的小部件中进行自动完成的方法。当用户开始输入单词时,QCompleter
会根据单词列表建议可能的完成方式。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);
QCompleter
的数据,只需通过调用QAbstractItemView::model()
函数传递你的QListWidget
已经在使用的模型即可。 - RobbieE