1

我有一个相当复杂的小部件结构,它代表一些对象的列表。包含框架对子小部件自己不处理的某些QKeyEvents(例如)做出反应。Alt+Up但是,当我收到事件时,我想知道它的来源,或者通过

  1. 获取当前具有键盘焦点的小部件,或通过
  2. 获取该小部件的屏幕坐标(之后我可以转换)。

我无法处理QKeyEvents这些小部件,因为它们对父级的功能一无所知 - 具体而言,Alt-Up将项目在列表中向上移动,但项目的编辑器本身并不知道它在列表中。

4

1 回答 1

1

知道了:

# get focus with keyboard focus
widget=QApplication.focusWidget() 
# use its middle position
globPos=widget.mapToGlobal(QPoint(.5*w.width(),.5*w.height()))
于 2012-05-14T14:24:45.767 回答