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
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