如何将焦点从 QLineEdit 移动到 QTableView 可编辑单元格

How to move the focus from a QLineEdit to a QTableView editable cell

我正在使用一个 QMainWindow,里面有几个 QLineEdits,还有一些 QPushButtons。当焦点位于 QLineEdit 中时(如果我在 QLineEdit 中键入内容)并且如果我按 F5 键,我想显示 QDialog.

QDialog 包含一个 QTableView。我的问题是,当我按下 F5 键时,我想将焦点从 QLineEdit 移动到 QTableView 的单元格。我怎样才能做到这一点?

子类 QLineEdit 并覆盖 keyPressEvent() 以检测何时按下 F5 键,或在 QLineEdit.

上安装事件过滤器

如果您在按键事件处理期间创建并显示对话框,对话框将自动在事件中接收焦点,并且对话框中接受焦点的第一个小部件将成为焦点小部件。因此,要么让 QTableView 成为第一个小部件,要么使用 setFocus().

明确地将焦点赋予它

如果对话框已经构建或者是一个已经打开的非模态对话框,您需要一个指向该对话框的指针,以便您可以在按下 F5 键时显示 it/give 它的焦点。

如果您想移动到 QTableView 中的某个单元格,您当然还需要知道与您的 QLineEdit.

关联的单元格