点击QCompleter时直接跳出下拉框实现可以利用eventFilter
ui.mtLineEdit->installEventFilter(this);
...
bool CopyDataDialog::eventFilter(QObject* obj, QEvent* event)
{
if (obj == ui.mtLineEdit && event->type() == QEvent::MouseButtonPress)
{
ui.mtLineEdit->completer()->setCompletionPrefix(ui.mtLineEdit->text());
ui.mtLineEdit->completer()->complete(ui.mtLineEdit->rect());
}
return false;
}
setCompletionPrefix用于更新匹配前缀,下拉框根据前缀列出可能的项列表。
complete方法用于显示下拉列表,可以指定显示的位置。