PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : QCanvas rtti Problem



xmarvel
02-08-2004, 17:38
Ich habe ein kleines Problem mit QCanvas ich will jedes QCanvasItem beim Mausklick genau identifizieren.
Mittels den rtti values der QCanvasItems weiss ich ja was für eine Art ich gerade angeklickt habe.
Nun wil ich aber unter der Art noch entscheiden also wenn mehrer QCanvasText exestieren das ich die beim klick auch nochmal unterscheiden kann. Ob es jetzt das erste QCanvasText war oder das zweit erstellte.
Inmoment löse ich das Problem indem ich die rtti Values der einzelnen QCanvas überlade und somit immer den rtti value um eins erhöhe.
Das klappt auch nur leider muss ich ja dann jedes QCanvas überladen gibt es denn keine andere Möglichkeit hat jemand vielleicht eine Idee wie man das umgehen könnte ?



QCanvasTest::QCanvasTest(QCanvas* canvas) : QCanvasText(canvas)
{
// erhöht den rtti Counter
counter++;

// addiert 1000 rtti Punkte dazu damit es nicht mit den default rtti Werten kollidiert.
rttiValue = 1000 + counter;
}

int QCanvasTest::rtti() const // Überladene Methode
{
return rttiValue;
};


MFG
xmarvel

anda_skoa
02-08-2004, 17:44
Ich würde rtti() nur benutzen, um den Typ zu unterscheiden.

Für deine eigene Unterscheidung kannst du ja eine weitere Methode einbauen, oder du speicherst alle CanvasObjekte in einer Liste und suchst dann in der Liste nach der Übereinstimmung und ermittelst so den Index.

Allerdings geht das was du erreichen willst auch besser, für was brauchst du diese Information?

Ciao,
_

xmarvel
02-08-2004, 17:57
dann werde ich das mal ausprobieren anhand der Objekte zu indexzieren.
Ich brauch das ganze um eigene interne Eigenschaften der QCanvas Objekte abzusiechern und abzurufen beim Mausklick auf das QCanvas.

MFG
xmarvel