На сцене нужно отобразить кучу itemов (в основном полигоны, линии, круги и прочее, наследованы от QGraphicsItem).
Теперь возникла задача, на этой же сцене отображать виджеты (QLCDNumber, QListWidget, QPushButton). С отображением через addWidget проблем нет.
Но виджет, который добавился на сцену не передвигается мышью, как например другие элементы, которые наследованы от QGraphicsItem.
И еще впорос:
Если я в наследнике QGraphicsItem (назевоем его QRailItem), добавил поля (qint32 objectType, и прочее ...), потом от QRailItem тоже наследуется много классов.
Мне нужно что бы виджеты, которые добавляются на сцену тоже были наследниками QRailItem, или имели такие же поля как в QRailItem. Как сделать? Догадываюсь про множественное наследование, но пока еще не пойму как конкретно.
Вот частичное описание класса QRailItem, от которого наследуются все классы отображаемых элементов на сцене
class QRailItem : public QObject, public QGraphicsItem
{
Q_OBJECT
Q_INTERFACES (QGraphicsItem)
protected:
bool fupdating;
QString fname;
TObjectType fobjectType;
...
};
Как видно, класс наследуется от QObject и QGraphicsItem.
Подозреваю что виджеты мне надо наследовать так?
class QRailItem : public QLCDNumber, public QGraphicsWidget
{
Q_OBJECT
Q_INTERFACES (QGraphicsWidget)
...
}
А как получить теже поля что и у QRailItem?
Или вынести их все в отдельный класс, и множественным наследованием получить их уже в QRailItem и наследнике QGraphicsWidget?