У меня есть система, которая имеет классы, полученные из QGraphicsWidget. Я управляю объектами производного класса в макетах на QGraphicsScene. Теперь мне нужен составной элемент, содержащий два или более QGraphicsWidget, а также я должен поместить этот элемент в свой макет. Поэтому я выбираю QGraphicsItemGroup и пишу класс I как это.Подкласс QGraphicsItemGroup
class CompositeItem : public QGraphicsItemGroup,public QGraphicsLayoutItem
{
...
};
Я только реализовал функцию размера снова. При добавлении экземпляра CompositeItem в макет он не отображается. Что может быть причиной этого? Где я ошиблась?
Вы действительно добавили свои виджеты в 'addToGroup'? – Troubadour
Для оформления, вот моя реализация конструктора CompositeItem CompositeItem :: CompositeItem (QString itemId, QList дети) { QGraphicsWidget * child; foreach (ребенок, дети) { addToGroup (ребенок); } } –
onurozcelik
В документации Qt указано, что QGraphicsLayoutItem является абстрактным классом и что вы должны повторно использовать несколько методов (значение sinzeHint(), которое вы уже переопределили, а также общедоступный метод setGeometry()). Вы реализовали эти методы? – Lohrun