2

我有一个 QCompleter 强制我的用户在弹出窗口可见但不用于选择项目时按两次输入。与已完成关联的 QComboBox 的模型用作完成者的模型。

 QCompleter *completer = new QCompleter(this);
 completer->setCaseSensitivity(Qt::CaseInsensitive);
 completer->setCompletionMode(QCompleter::PopupCompletion);
 completer->setModel(this->ui->comboBox->model());
 this->ui->comboBox->setCompleter(completer);

随着用户输入项目,可能完成的列表会增加。如果他们开始在有更长的补全可用的情况下键入短补全(例如“dir”),并且他们在没有从弹出窗口中选择任何内容的情况下点击(即,既没有激活,也没有突出显示,也没有触发 indexchanged),那么他们将被迫再次点击 enter 以处理他们输入的文本。有没有一种简单的方法来解决这个问题?

谢谢

4

1 回答 1

0

我用 Qt 4.6.2 和 Visual 2008 试过,你描述的情况没有发生。如果您想尝试,可以使用项目。

编译,开始,输入'something',然后在组合框中returb:它已注册,输入'some'并返回:你的组合框现在有“some”和“somewhere”

于 2011-04-14T18:09:06.100 回答