c++ - QCompleter强制双输入

标签 c++ qt qcombobox qcompleter

我有一个 QCompleter,当弹出窗口可见但不用于选择项目时,它会强制我的用户按两次 Enter。与已完成相关联的 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”),而那里有更长的可用完成,并且他们没有从弹出窗口中选择任何东西(即激活、高亮或索引更改都没有被触发),那么他们将被迫再次按下 enter 以处理他们输入的文本。有解决这个问题的简单方法吗?

谢谢

最佳答案

我用 Qt 4.6.2 和 Visual 2008 试过了,你描述的情况没有发生。 project available如果你想试试。

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

关于c++ - QCompleter强制双输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2229874/

相关文章:

c++ - 在 C++ 中使用逻辑作为参数

c++ - 使用模板参数添加/删除数据成员?

qtcreator 项目的 cmake 与 gmake

c++ - 从自定义方法获取发射信号。连接 qSlider 和 qDoubleSpinBox

python - 将可检查组合框的文本显示到 QTableWidget

css - 后面没有方框的圆形QComboBox

c++ - 编写 HugeInteger 类

c++ - 运算符(operator)溢出功能调用未正确调用

user-interface - 跨线程的Qt信号,一个是GUI线程?

c++ - 防止修改项目列表时更改可编辑的 QComboBox 选择