我正在一个文本编辑器项目上,启动时,“查找”工具当前看起来像这样:
我想知道如何更改应用程序/文本光标的焦点,以便在对对话框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); // <---