1

いくつかのオブジェクトのリストを表すかなり複雑なウィジェット構造があります。含まれているフレームは、子ウィジェット自体が処理しない一部QKeyEventの s ( など) に反応します。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 に答える