Kopierkonstruktor bei einer QGraphicsRectItem Klasse
Verfasst: 16. September 2010 12:47
Hallo,
ich habe mir eine QGraphicsRectItem Klasse abgeleitet und darin ein QGraphicsSvgItem eingebettet, zusammen mit einem Kopierkonstruktor.
Wenn ich das Objekt nun kopieren will, wird mir beim neuen Objekt nie eine Kopie des "my_svg" Objekts erstellt. Weiß da jemand wieso? Genau so verhält es sich mit den Koordinaten die angelegt wurden mit der "setRect()" Methode oder wenn ich in der "my_new_rect0" Klasse "setBrush()" setzen. das wird auch nicht mit kopiert.
Weiß da jemand wie ich das hin bekomme ?
ich habe mir eine QGraphicsRectItem Klasse abgeleitet und darin ein QGraphicsSvgItem eingebettet, zusammen mit einem Kopierkonstruktor.
Code: Alles auswählen
class Myrect : public QObject, public QGraphicsRectItem {
Q_OBJECT
private:
QGraphicsSvgItem *my_svg;
protected:
public:
Myrect(QString fileName, QGraphicsItem *parent = 0);
Myrect(const Myrect &item);
void setRect(qreal x, qreal y, qreal w, qreal h);
};
Myrect(QString fileName, QGraphicsItem *parent = 0) {
my_svg = new QGraphicsSvgItem(fileName);
}
Myrect::Myrect(const Myrect &item) {
}
void Myrect::setRect(qreal x, qreal y, qreal w, qreal h) {
QGraphicsRectItem::setRect(x, y, w, h);
my_svg->setPos(x, y);
}
Code: Alles auswählen
Myrect *my_new_rect0;
my_new_rect0 = new Myrect("/der/pfad/zur/datei.svg");
my_new_rect0->setRect(50, 50, 300, 300);
Myrect *my_new_rect1;
my_new_rect1 = new Myrect(*my_new_rect0);
my_new_rect1->setRect(50, 50, 300, 300);