У меня есть 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») там, где доступны более длинные завершения, и они нажимают, не выбирая ничего из всплывающего окна (т. е. ни активировано, ни выделено, ни indexchanged не срабатывает), то они вынуждены снова нажать Enter, чтобы обработать введенный текст. Есть ли простой способ обойти это?
Благодарность
activated(const QString&)
, даже если всплывающее окно полностью видно. Какую версию Qt вы используете? Какую ОС вы используете? - person RA.   schedule 10.02.2010