[Goocanvasmm] Klasse von Goocanvas::ItemSimple ableiten
-
Hi,
ich möchte ein eigenes item von Goocanvas::ItemSimple ableiten. Ich habe ein kleines beispiel angehängt, dass erstmal zwei geraden darstellen soll. Wenn ich mein abgeleitetes item mittels add_child() auf mein canvas lege, bleibt es allerdings leer. Dazu kommt, dass beim schließen des hauptfensters ein segfault auftritt.
Irgendwas mache ich offensichtlich falschs. Vllt bin ich auch auf einem komplett falschen weg?
Kann mir jemand helfen?//Diagram.h class Diagram : public Goocanvas::ItemSimple { private: Glib::RefPtr<Goocanvas::Polyline> xAxis; Glib::RefPtr<Goocanvas::Polyline> yAxis; public: Diagram(); Diagram(double, double, double, double); static Glib::RefPtr<Diagram> create(double, double, double, double); } //Diagram.cpp Diagram::Diagram(double xmin, double ymin, double xmax, double ymax) { xAxis = Goocanvas::Polyline::create(0,0,10,10); yAxis = Goocanvas::Polyline::create(0,0,100,100); add_child(xAxis); add_child(yAxis); } Glib::RefPtr<Diagram> Diagram::create(double xmin, double ymin , double xmax, double ymax) { return Glib::RefPtr<Diagram>(new Diagram(0,0,100,100)); } //main.cpp Glib::RefPtr<Diagram> velocitydiagram = Diagram::create(0,0,10,10); Glib::RefPtr<Goocanvas::Item> velocity_canvas_root = velocity_canvas.get_root_item(); velocity_canvas_root->add_child(velocitydiagram);
-
Ich habs inzwischen hinbekommen, indem ich nicht von Goocanvas::ItemSimple sondern von Goocanvas::Group ableite.
Das ganze funktioniert vermutlich, da Goocanvas::Group bereits einige interfaces implementiert hat, die man beim ableiten von Goocanvas::ItemSimple erst selbst implementieren müsste.