Qt-Framework: so zeigen Sie eine QGraphicsView in ein layout?
Ich bin mit Mühe ein QGraphicsView zu zeigen, bis in ein QVBoxLayout-Objekt, und ich habe keine Ahnung, was falsch ist. Mein code kompiliert werden, damit keine Fehler geworfen werden. Hier ist mein einfacher code. (Ich bin ein Qt und C++ newb). Unten füge ich ein QPushButton-widget zu den layout-und das zeigt sich gut. Vielen Dank für Eure Hilfe im Voraus!
QGraphicsScene scene;
QGraphicsView view(&scene);
view.setBackgroundBrush(QImage(":/images/bg/tile.png"));
view.setCacheMode(QGraphicsView::CacheBackground);
QPixmap pixmap("images/icons/dsp.gif");
QGraphicsPixmapItem* dsp = scene.addPixmap(pixmap);
view.show();
vlayout->addWidget(&view);
vlayout->addWidget(new QPushButton("some button here"));
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht genug Kontext, so kann ich nicht sagen, was passiert genau. Aber, wenn man diese in eine Funktion, dann sind Sie der Deklaration der lokalen Variablen, die sind Weg sobald die Funktion beendet wird. Wenn Sie in der Hauptsache, du bist-code sollte in etwa so Aussehen, aber es wird wahrscheinlich Abstürzen:
Empfehle ich, die dynamische Zuweisung von Objekten:
Vergessen Sie nicht, löschen Sie das parent-Objekt, so dass es nicht Leck Speicher.
new
), das Objekt bleibt bestehen, bis Sie Sie löschen es mit derdelete
Betreiber. In Qt können Sie sicherstellen, dass ein Objekt ein Elternteil hat, und wenn Sie löschen die Eltern das Kind auch automatisch gelöscht werden. Wenn Sie erstellen Sie eine lokale variable, zum Beispiel, geht es auf dem stack und es wird entfernt, wenn die Funktion beendet wird. Ich hoffe, das hilft.