2012-06-20 113 views
0

如何更改通過光標鍵在QGridLayout中選擇項目的行爲?我想通過左/右光標鍵水平移動選擇,並通過上/下鍵垂直移動選擇。 誰負責?佈局,項目容器或Tab鍵順序?自定義QGridLayout項目選擇行爲

+0

Lyout對任何與焦點AFAIK有關的事情概不負責。小部件自己負責處理焦點和Tab鍵順序。正如漢克所說,你需要自己實現它。 –

回答

1

您可以重新實現keyPressEvent()方法讓主小部件捕捉按下的按鍵。然後,您可以通過調用QGridLayout::itemAtPosition (int row, int column)訪問您的佈局中的所需小部件,然後設置焦點。

+0

謝謝。我試圖這樣做,但keyPressEvent沒有在我的小部件(只是keyReleasedEvent)或甚至主要事件處理程序(def事件(自我,目標,事件))中調用沒有收到QEvent.KeyPress。我最終爲QGridLayout中的每個小部件安裝了eventFilter,它處理關鍵事件並將焦點設置到計算的小部件。 – ternyk

相關問題