Я работаю с QGraphicsView / Scene впервые. Это в PyQt, но за исключением того факта, что Python отличается множественным наследованием, я думаю, что это общий вопрос Qt.
Я начал с создания нескольких перегрузок QGraphicsItem в качестве строительных блоков. Когда у меня были те, кто работал так, как я хотел, я хотел попытаться объединить их, и был неприятно удивлен, обнаружив, что я не могу использовать в QGraphicsLayouts. Это связано с тем, что QGraphicsLayouts принимает элементы, которые наследуются от QGraphicsLayoutItem, а QGraphicsItems наследуются QGraphicsLayoutItems, которые, в свою очередь, наследуются QGraphicsWidgets.
Есть свойство graphicsItem в QGraphicsItem / QGraphicsWidget, но, глядя на код, я не думаю, что могу присвоить свой Item этому свойству и заставить их работать должным образом. Я нашел этот пример , но, как ни странно, в нем есть примеры, которые наследуются от обоих классов. Довольно странно для меня.
Поэтому я пытаюсь найти самый простой способ заставить мои Предметы работать в Макетах. Есть ли более простой способ сделать это, чем переписать и унаследовать один из этих двух классов?
Вторичный вопрос, есть ли эмпирическое правило, когда вам следует наследовать от QGraphicsWidget, а не когда вы наследуете от QGraphicsLayoutItem?
Дополнительный кредит для объяснения того, когда используются sizeHint и boundingRect.
Ценю помощь,
Brett