对于复杂的布局,如果孩子获得焦点,那么向父 QWidget 发出信号的简单方法是什么?
一个想法是以某种方式在所有子 QWidget 上安装事件过滤器,但这似乎有点愚蠢。
父母 QWidget 真的不知道它的一个孩子有焦点吗?
编辑:找到这个,也许这是唯一的方法
对于复杂的布局,如果孩子获得焦点,那么向父 QWidget 发出信号的简单方法是什么?
一个想法是以某种方式在所有子 QWidget 上安装事件过滤器,但这似乎有点愚蠢。
父母 QWidget 真的不知道它的一个孩子有焦点吗?
编辑:找到这个,也许这是唯一的方法
您可以为所有必要的孩子安装事件过滤器(可以),或者QWidget::focusInEvent
为需要监控的每个孩子安装事件过滤器。
我很懒所以这就是我所做的(无法粘贴代码,因为它不在这台机器上)。
向我的小部件基类添加了一个布尔值“listenToFocusChangesFromChildren”
然后我更改了我的基类 focusInEvent 以循环遍历所有父级,并在任何将该布尔值设置为 true 的对象上调用“childGotFocus”。
懒惰,但似乎非常有效。