2

对于复杂的布局,如果孩子获得焦点,那么向父 QWidget 发出信号的简单方法是什么?

一个想法是以某种方式在所有子 QWidget 上安装事件过滤器,但这似乎有点愚蠢。

父母 QWidget 真的不知道它的一个孩子有焦点吗?

编辑:找到这个,也许这是唯一的方法

当子小部件具有焦点时如何更改父小部件的背景?

4

2 回答 2

3

您可以为所有必要的孩子安装事件过滤器(可以),或者QWidget::focusInEvent为需要监控的每个孩子安装事件过滤器。

于 2013-10-04T12:03:54.750 回答
0

我很懒所以这就是我所做的(无法粘贴代码,因为它不在这台机器上)。

向我的小部件基类添加了一个布尔值“listenToFocusChangesFromChildren”

然后我更改了我的基类 focusInEvent 以循环遍历所有父级,并在任何将该布尔值设置为 true 的对象上调用“childGotFocus”。

懒惰,但似乎非常有效。

于 2013-10-04T13:13:59.943 回答