Seite 1 von 1
QGraphicsPixmaItem wird nicht in QGraphicsScene gepaintet
Verfasst: 6. Februar 2010 15:25
von theprogrammer12
So sieht mein Code aus:
Code: Alles auswählen
g_scene = new QGraphicsScene();
g_scene->setBackgroundBrush(QColor(255, 255, 255));
pixmap = new QPixmap();
item = new QGraphicsPixmapItem();
item->setPixmap(*pixmap);
g_scene->addItem(item);
g_scene->setForegroundBrush(QColor(0, 0, 0));
setScene(g_scene);
painter = new QPainter();
Was ist daran falsch? Ich kann bei der QGraphicsScene die Hintergrundfarbe setzen, also wird sie ordentlich dargestellt, nur das Item macht Probleme
Verfasst: 6. Februar 2010 15:30
von Christian81
QPixmap::load() gibt bei Fehler false zurück wenn das Bild nicht geladen werde konnte was wohl der Fall ist.
Verfasst: 6. Februar 2010 15:45
von theprogrammer12
Nein, die Datei existiert und ich hab auch die Rechte, die datei zu lesen.
Mir ist gerade aufgefallen, dass g_scene in der Paint-Funktion gar nicht existiert! Wie kann das sein?
Verfasst: 6. Februar 2010 15:52
von theprogrammer12
Das Programm segfaultet dann, wenn ich die Koordinaten setzen will.
Es hat vorher nur deshalb nichts gemacht, weil ich in meine Paint Funktion
geschrieben habe
Verfasst: 6. Februar 2010 16:16
von theprogrammer12
ok hab den fehler gefunden. Jetzt wird die Datei geladen, aber es wird immer noch nichts angezeigt
Verfasst: 6. Februar 2010 18:16
von Christian81
Also gibt QPixmap::load() nun true zurück?
Verfasst: 7. Februar 2010 10:20
von franzf
theprogrammer12 hat geschrieben:Das Programm segfaultet dann, wenn ich die Koordinaten setzen will.
Es hat vorher nur deshalb nichts gemacht, weil ich in meine Paint Funktion
geschrieben habe
Kannst du mal bitte genauer beschreiben, wie das ganze bei dir aufgebaut ist?
Wo steht der Code, den du da oben gezeigt hast?
Von welcher "Paint-Funktion" sprichst du? Von welcher Klasse?
Das sind irgendwie alles zu wenige Angaben.
Außerdem: Warum QPixmap als Pointer?
Zeig mal bitte skizziert deine involvierten Klassen, am besten wäre ein kompilierbares Minimalbeispiel, welches den Fehler enthält. Also nicht Code posten der funktioniert...
Verfasst: 11. Februar 2010 17:04
von theprogrammer12
Also das ist so:
ich habe ein Klasse (abgeleitet von einem QGraphicsView), um Dinge darzustellen. Sie hat eine Create-Funktion, die die Ausgabe initialisiert und eine Paint Funktion, die das ganze paintet.
Ich kann über die QGraphicsScene einwandfrei malen, aber das ist sehr langsam.
Verfasst: 11. Februar 2010 17:58
von theprogrammer12
OK ich habs. Ich hab den ForegroundBrush des QGraphicsScene auf eine Farbe gesetzt.
Aber eins hab ich noch:
Ich hab das QPixmap jetzt nicht mehr als Pointer definiert. Ok, aber wie ändere ich jetzt die Größe?
Ich habs vorläufig so gemacht:
Gibt es dafür nicht eine schönere Lösung?