Seite 1 von 1

item in Qlist ansprechen?

Verfasst: 19. Dezember 2008 21:43
von konvex
hi,
ich arbeite gerade mit QList und will das eine Ellipse aus der liste mit einem slot von einer linie verbunden wird durch sowas:
QObject::connect(liste.first(), SIGNAL(loschen()), linie , SLOT(wurdeersetzt(liste.first(), item2)));
aber ich weiß nicht wie ich sag, dass liste.first() eine ellipse ist (bzw. alle ellipsen aus der liste gegeben werden). es gibt ja die funktion
QList<QGraphicsItem *> liste = items();
aber ich bräuchte sowas wie:
QList<EllipseItem *> liste = items();
oder
QList<QGraphicsItem *> liste = items(EllipseItem);
kann mir jemand helfen wie ich sowas am besten mach?

Verfasst: 19. Dezember 2008 23:58
von The User

Code: Alles auswählen

for(QList<QGraphicsItem*>::iterator i = liste.begin(); i != liste.end(); ++i)
{
  if(EllipseItem* item = dynamic_cast<EllipseItem>(*i))
  {
    /* Do Stuff */
    linie->wurdeersetzt(item, item2);
    return;
  }
}
qDebug() << "No Ellipse in the List";
Einfach prüfen, ob es die richtige Klasse hat. ;)

Verfasst: 20. Dezember 2008 11:43
von solarix
eher

Code: Alles auswählen

if(EllipseItem* item = dynamic_cast<EllipseItem*>(*i)) 
:wink:

Verfasst: 7. Januar 2009 12:14
von konvex
Danke, hat mir schonmal weitergeholfen, aber jetzt werden durch die for-Schleife alle Ellipsen durch ne linie verbunden.
kann ich das ganze auch ohne for-schleife machen, weil ich möchte ja nur zwei miteinander verbinden!?