我正在开发一个应用程序,我希望某个击键(让我们说Tab
这个例子的键)始终由特定的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 拦截每个Tab
按键?
为每个孩子安装事件过滤器QWidget
是不切实际的,因为应用程序非常庞大且容易更改。