Python 自定义QGridLayout项选择行为

Python 自定义QGridLayout项选择行为,python,qt,pyqt,grid-layout,Python,Qt,Pyqt,Grid Layout,如何更改在QGridLayout中通过光标键选择项目的行为?我想通过左/右光标键水平移动选择,通过上/下键垂直移动选择。 谁对此负责?布局、项目容器或选项卡顺序?您可以为主小部件重新实现keyPressEvent()方法以捕捉按下的键。然后,您可以通过调用QGridLayout::itemAtPosition(int行,int列)来访问布局中所需的小部件,然后将焦点设置为它。Lyout对与焦点相关的任何事情都不负责。小部件自己负责处理焦点和选项卡顺序。正如hank所说,您需要自己实现它。谢谢。我

如何更改在QGridLayout中通过光标键选择项目的行为?我想通过左/右光标键水平移动选择,通过上/下键垂直移动选择。
谁对此负责?布局、项目容器或选项卡顺序?

您可以为主小部件重新实现
keyPressEvent()
方法以捕捉按下的键。然后,您可以通过调用
QGridLayout::itemAtPosition(int行,int列)
来访问布局中所需的小部件,然后将焦点设置为它。

Lyout对与焦点相关的任何事情都不负责。小部件自己负责处理焦点和选项卡顺序。正如hank所说,您需要自己实现它。谢谢。我试图这样做,但在我的小部件中没有调用keyPressEvent(只调用keyReleasedEvent),或者甚至主事件处理程序(def event(self、target、event))也没有接收QEvent.KeyPress。最后,我为QGridLayout中的每个小部件安装了eventFilter,它处理关键事件并将焦点设置为计算出的小部件。