【问题标题】:QGraphicsProxyWidget Z value change from parent QGraphicsItemQGraphicsProxyWidget Z 值从父 QGraphicsItem 改变
【发布时间】:2016-05-10 13:09:27
【问题描述】:

我正在使用 QGraphicsProxyWidget 对象(A 和 B)来表示一些常规的 GUI 元素,例如我的 QGraphicsScene 中的组合框。这些代理对象(从逻辑的角度来看)链接到一个常规的 QGraphicsItem 实例 C。

在我的应用程序的某个时刻,我需要确保项目 C 加上它的代理对象 A 和 B 具有比周围元素更高的 Z 级别。但是,当我尝试遍历项目 C 的所有子(和孙)时,代理元素永远不会被访问,因此 Z 值永远不会更新 => 我的项目 C 具有新的 Z 值,代理 A 和 B 会不是,因此被遮盖了。

我目前正在添加这样的代理:

m_pProxy = m_pScene->addWidget(pCombobox);

【问题讨论】:

    标签: qt proxy parent-child qgraphicsitem qgraphicsscene


    【解决方案1】:

    问题是代理 A 和 B 实际上不是项目 C 的子对象,如果添加了问题中的代码片段。如果需要直接关系,则需要按如下方式添加代理:

    m_pProxy = new QGraphicsProxyWidget(pItem);
    m_pProxy->setWidget(pCombobox);
    m_pScene->addItem(m_pProxy);
    

    通过手动创建代理对象,您可以指定所需的父元素(此处为常规项 C),然后指定 add it to the scene。因此,循环遍历其子元素现在也会返回代理,并且可以根据需要更改其 Z 值。

    【讨论】:

      猜你喜欢
      • 2021-08-17
      • 1970-01-01
      • 1970-01-01
      • 2014-02-20
      • 2019-04-13
      • 1970-01-01
      • 2018-05-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多