2016-02-01 3 views
0

Я использую QGraphicsProxyWidget объектов (А & B), чтобы представить некоторые регулярные элементы графического интерфейса пользователя, такие как comboxboxes в моем QGraphicsScene. Эти прокси-объекты (с логической точки зрения) связаны с регулярной QGraphicsItem например C.QGraphicsProxyWidget Z изменить значение от родительского QGraphicsItem

В какой-то момент в моем приложении мне нужно убедиться, что этот элемент C плюс его прокси-объекты А & B имеет более высокий Z, чем окружающие элементы. Однако, когда я пытаюсь зациклиться на всех дочерних элементах (и внуках) моего элемента C, элементы прокси никогда не получают доступа, и поэтому значение Z никогда не обновляется => мой элемент C имеет новое значение Z, прокси A & B do нет и, следовательно, затенены.

я в настоящее время добавления прокси-серверов, как это:

m_pProxy = m_pScene->addWidget(pCombobox); 

ответ

1

Проблема заключался в том, что прокси & В самом деле не являются дочерними объектами пункта С, при добавлении с фрагментом кода от вопроса. Если требуется прямое relationsship, прокси-серверы должны быть добавлены следующим образом:

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

С помощью ручного создания прокси-объекта можно указать желаемый родительский элемент (здесь постоянный пункт C), а затем add it to the scene. В результате цикл над его дочерними элементами теперь также возвращает прокси, а их значение Z может быть отредактировано по мере необходимости.

Смежные вопросы