Qt:一旦显示,如何将光标焦点转移到查找对话框 box/tool 中的字段?

Qt: How to shift the cursor focus to a field in a Find dialog box/tool once it's shown?

我正在做一个文本编辑器项目,查找工具在启动时看起来像这样:

我想知道如何移动 application/text 光标焦点,以便在 show 对话框(类型为QDialog).

目前,如您所见,文本光标保留在文档中,因此用户必须手动单击“查找”工具才能开始搜索,这有点不方便。我试着乱用对话框的 setFocus 方法,但这似乎没有帮助。

要激活 QDialog 中的焦点,请执行以下操作:

void MainWindow::on_actionFind_triggered()
{
    if(findDialog->isHidden())
    {
        findDialog->show();
        findDialog->activateWindow();
        findDialog->raise();
        findDialog->setFocus();
    }
}

但默认情况下,获得焦点的将是 QPushButton,因此要更改该行为,必须将其建立为 QLineEdit 的 QDialog 代理。

lineEdit = new QLineEdit();
setFocusProxy(lineEdit); // <---