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

时间:2015-04-28 12:05:09

标签: qt qwidget qtableview qlineedit qt5.4

我使用QMainWindow,其中QLineEdits少,QPushButtons。当焦点位于QLineEdit时(如果我在QLineEdit中键入内容)并且如果我按F5键,我想显示QDialog

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

1 个答案:

答案 0 :(得分:1)

子类QLineEdit并覆盖keyPressEvent()以检测何时按下F5键,或在QLineEdit上安装事件过滤器。

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

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

如果您要移至QTableView中的某个单元格,您当然还需要知道与您的QLineEdit相关联的单元格。