Seite 1 von 1

QGraphicsView zu Widget hinzufügen?

Verfasst: 9. Juni 2010 23:05
von Himbeer-Toni
Hallo liebe Community,

ich hätte erneut eine Frage. Ich würde gerne ein QGraphicsView einem Widget hinzufügen. Anbei der gekürzte Code:

Code: Alles auswählen

MainWindow::MainWindow(QWidget *parent) : QWidget(parent) {
    this->setGeometry(100, 100, 800, 600);

    QPushButton *quit = new QPushButton(tr("Quit"));

    QGraphicsScene Scene;

    QGraphicsView Test(Scene, this);
    Test.setBackgroundBrush(Qt::blue);
    Test.setPalette(QPalette(QColor(0, 0, 200)));
    //Test.show();

    QGridLayout *Layout = new QGridLayout;
    Layout->addWidget(&Test, 0, 0);
    Layout->addWidget(quit, 0, 1);
    this->setLayout(Layout);
}
Die Klasse MainWindow ist das Hauptfenster, welches in main() instanziiert und gestartet wird. Starte ich in main() die QGraphicsView Test, popt es korrekt auf. Füge ich es aber wie oben gezeigt in das Widget MainWindow ein, wird es nicht angezeigt. Der Button wird korrekt angezeigt, am Layout liegt es also nicht.

Woran kann das liegen?

Verfasst: 9. Juni 2010 23:18
von franzf
view und scene sind nach dem Konstruktor tot -> out of scope.
Leg es in den Freispeicher, oder/und (besser) mach Member draus. So kannst du auch noch außerhalb des Konstruktors was mit den Objekten anfangen.

Verfasst: 10. Juni 2010 17:13
von Himbeer-Toni
C++ Vorlesung ist bereits zu lange her :)

Ich danke dir vielmals, klappt wunderbar!