使用两个QStringList自动完成

时间:2016-02-15 11:44:26

标签: c++ qt qcompleter

我知道如何使用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);

但是,当我输入QString xxxxx.yyyyy时,我希望加入xx QStringlist.的所有自动完成都会显示为下拉列表,所以在我选择了适当的,如果我输入QStringList自动填写表单,则应将第二个$ redis-server sh: redis-server: command not found 下拉。

我知道我没有正确理解我的观点,但要解释这一点真的很难。

1 个答案:

答案 0 :(得分:0)

我想到的一个基本想法是你应该在QLineEdit上注册一个关键的新闻监听器,它只监听.个字符。用户输入.字符后,您应该将所有已输入的字符添加到第二个QStringList并将其添加到QCompleter

步骤:

  • 应用第一个QStringList
  • 当用户输入.时,将目前为止输入的内容添加到第二个QStringList并将其应用于QCompleter