2012-05-14 98 views
1

我有一個相當複雜的小部件結構,它代表了一些對象的列表。包含框架對兒童小部件不處理自己的某些QKeyEvent(例如Alt+Up)作出反應。當我收到的事件,但是,我想知道它起源,無論是QKeyEvent:尋找原始小部件?

  1. 越來越目前有鍵盤焦點,或通過窗口小部件的
  2. 獲取屏幕座標(我可以轉換插件之後)。

我不能在那些部件處理QKeyEvents,因爲他們知道什麼對父母的功能 - 特別是,Alt-Up在列表中移動的項目,但該項目的編輯器本身並不知道它是一個列表內。

回答

1

明白了:

# get focus with keyboard focus 
widget=QApplication.focusWidget() 
# use its middle position 
globPos=widget.mapToGlobal(QPoint(.5*w.width(),.5*w.height()))