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); // <---
我正在做一个文本编辑器项目,查找工具在启动时看起来像这样:
我想知道如何移动 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); // <---