2010-05-03 8 views
1

У меня есть система, которая имеет классы, полученные из QGraphicsWidget. Я управляю объектами производного класса в макетах на QGraphicsScene. Теперь мне нужен составной элемент, содержащий два или более QGraphicsWidget, а также я должен поместить этот элемент в свой макет. Поэтому я выбираю QGraphicsItemGroup и пишу класс I как это.Подкласс QGraphicsItemGroup

class CompositeItem : public QGraphicsItemGroup,public QGraphicsLayoutItem 
{ 
    ... 
}; 

Я только реализовал функцию размера снова. При добавлении экземпляра CompositeItem в макет он не отображается. Что может быть причиной этого? Где я ошиблась?

+0

Вы действительно добавили свои виджеты в 'addToGroup'? – Troubadour

+0

Для оформления, вот моя реализация конструктора CompositeItem CompositeItem :: CompositeItem (QString itemId, QList дети) { QGraphicsWidget * child; foreach (ребенок, дети) { addToGroup (ребенок); } } – onurozcelik

+1

В документации Qt указано, что QGraphicsLayoutItem является абстрактным классом и что вы должны повторно использовать несколько методов (значение sinzeHint(), которое вы уже переопределили, а также общедоступный метод setGeometry()). Вы реализовали эти методы? – Lohrun

ответ

0

Вызов show() в QGraphicsItemGroup или QGraphicsWidgets после добавления в макет.

+0

@ Вирик Симонян Я вызываю шоу, но он не показан. – onurozcelik

0

Добавьте setGraphicsItem (это) в свой конструктор.

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

  • Нет связанных вопросов^_^