Я создал класс Atom
, который расширяет класс Qt QGraphicsItem
как это:Qt добавить расширенную QGraphicsItem в сцене
Atom::Atom(qreal rad, qreal mass, int element, int state) : QGraphicsItem()
{
// Initialization code
}
void Atom::changeState(int newState)
{
// Code...
}
Затем я добавляю свой атом на сцене, как это:
Atom *a=new Atom(rad,mass,element,state);
a->setPos(pos);
scene->addItem(a);
Однако Qt преобразует мой класс Atom в класс QGraphicsItem. Теперь, когда я звоню scene->items()
, я получаю QList QGraphicsItems, которые не имеют свойств и методов моего класса Atom.
Итак, я задаю вопрос: как мне получить список атомов, которые я добавил в свою QGraphicsScene?
Спасибо.
Спасибо. В чем разница между: 'dynamic_cast (item)' vs '((Atom *) item)'? –
Joel
@Joel: http://stackoverflow.com/questions/28002/regular-cast-vs-static-cast-vs-dynamic-cast – Mat
Спасибо. Думаю, теперь я понимаю. – Joel