QGraphicsProxyWidget Z 值从父 QGraphicsItem 改变
QGraphicsProxyWidget Z value change from parent QGraphicsItem
我正在使用 QGraphicsProxyWidget 对象(A 和 B)来表示一些常规 GUI 元素,例如我的 QGraphicsScene 中的组合框。这些代理对象(从逻辑的角度来看)链接到常规 QGraphicsItem 实例 C.
在我的应用程序中的某个时刻,我需要确保此项目 C 及其代理对象 A 和 B 具有比周围元素更高的 Z 级别。但是,当我尝试遍历项目 C 的所有子项(和孙子)时,代理元素永远不会被访问,因此 Z 值永远不会更新 => 我的项目 C 有一个新的 Z 值,代理 A 和 B 做不是,因此被遮盖了。
我目前正在添加这样的代理:
m_pProxy = m_pScene->addWidget(pCombobox);
问题是代理 A 和 B 实际上不是项目 C 的子对象,如果添加问题中的代码片段的话。如果需要直接关系,需要添加代理如下:
m_pProxy = new QGraphicsProxyWidget(pItem);
m_pProxy->setWidget(pCombobox);
m_pScene->addItem(m_pProxy);
通过手动创建代理对象,您可以指定所需的父元素(这里是常规项C),然后add it to the scene。结果现在遍历其子元素 returns 代理以及它们的 Z 值可以根据需要更改。
我正在使用 QGraphicsProxyWidget 对象(A 和 B)来表示一些常规 GUI 元素,例如我的 QGraphicsScene 中的组合框。这些代理对象(从逻辑的角度来看)链接到常规 QGraphicsItem 实例 C.
在我的应用程序中的某个时刻,我需要确保此项目 C 及其代理对象 A 和 B 具有比周围元素更高的 Z 级别。但是,当我尝试遍历项目 C 的所有子项(和孙子)时,代理元素永远不会被访问,因此 Z 值永远不会更新 => 我的项目 C 有一个新的 Z 值,代理 A 和 B 做不是,因此被遮盖了。
我目前正在添加这样的代理:
m_pProxy = m_pScene->addWidget(pCombobox);
问题是代理 A 和 B 实际上不是项目 C 的子对象,如果添加问题中的代码片段的话。如果需要直接关系,需要添加代理如下:
m_pProxy = new QGraphicsProxyWidget(pItem);
m_pProxy->setWidget(pCombobox);
m_pScene->addItem(m_pProxy);
通过手动创建代理对象,您可以指定所需的父元素(这里是常规项C),然后add it to the scene。结果现在遍历其子元素 returns 代理以及它们的 Z 值可以根据需要更改。