如何将焦点从 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
.
关联的单元格
我正在使用一个 QMainWindow
,里面有几个 QLineEdits
,还有一些 QPushButtons
。当焦点位于 QLineEdit
中时(如果我在 QLineEdit
中键入内容)并且如果我按 F5 键,我想显示 QDialog
.
QDialog
包含一个 QTableView
。我的问题是,当我按下 F5 键时,我想将焦点从 QLineEdit
移动到 QTableView
的单元格。我怎样才能做到这一点?
子类 QLineEdit
并覆盖 keyPressEvent()
以检测何时按下 F5 键,或在 QLineEdit
.
如果您在按键事件处理期间创建并显示对话框,对话框将自动在事件中接收焦点,并且对话框中接受焦点的第一个小部件将成为焦点小部件。因此,要么让 QTableView
成为第一个小部件,要么使用 setFocus()
.
如果对话框已经构建或者是一个已经打开的非模态对话框,您需要一个指向该对话框的指针,以便您可以在按下 F5 键时显示 it/give 它的焦点。
如果您想移动到 QTableView
中的某个单元格,您当然还需要知道与您的 QLineEdit
.