2
我正在研究一個應用程序,我希望某個擊鍵(讓我們說Tab
這個例子的鍵)總是由一個特定的QWidget
來處理。可以說,我有這樣的層次結構:在所有情況下將keyPressEvent傳播到頂層QWidget
QWidget (top level window)
¬ QWidget X (the widget that should handle all Tab presses)
¬ QWidget (inner widget)
¬ ...
¬ ...
¬ QLineEdit (very deep into the hierarchy)
的QLineEdit
當前具有焦點,並可以輸入文字到它。當用戶按Tab
時,我希望它可以通過QWidget X
(靠近最頂層的層次結構)進行處理,以執行某些操作。如何確保當前窗口中的任何內容都有焦點時,特定的QWidget會攔截每一個按鍵?
對每個小孩QWidget
安裝一個事件過濾器是不切實際的,因爲該應用程序非常龐大且易於更改。相反,讓您的QWidget
覆蓋keyPressEvent
的
你有嗎?如果在QLineEdit中按下了一個標籤,你是否可以迭代備份父母,直到找到一個QWidget X類,然後調用它的一些OnTab()方法? –
QWidget X不是我的QLineEdit的父級,它只會進入頂層窗口小部件 – oggmonster