QGraphicsView als "CentralWidget" in QWidget



  • Hi,
    ich hab eine Frage zur QGraphicsView.

    scene = new QGraphicsScene(this);
        view = new QGraphicsView(this);
        view->setScene(scene);
    

    So habe ich bis jetzt die Programmierung mit GraphicsView angefangen. Im MainWindow konnte ich jetzt view als CentralWidget setzten, damit war das Fenster immer mit der GraphicsView ausgefüllt. Bei einem QWidget funktioniert das aber nicht mehr, da es keine Funktion setCentralWidget gibt. Entsprechend sieht man nichts von "der View". Wie kann ich das jetzt lösen?



  • HdLive schrieb:

    Hi,
    ich hab eine Frage zur QGraphicsView.

    scene = new QGraphicsScene(this);
        view = new QGraphicsView(this);
        view->setScene(scene);
    

    So habe ich bis jetzt die Programmierung mit GraphicsView angefangen. Im MainWindow konnte ich jetzt view als CentralWidget setzten, damit war das Fenster immer mit der GraphicsView ausgefüllt. Bei einem QWidget funktioniert das aber nicht mehr, da es keine Funktion setCentralWidget gibt. Entsprechend sieht man nichts von "der View". Wie kann ich das jetzt lösen?

    Warum nimmst du nicht gleich das QGraphicsView-Object statt des Widgets, wenn du das Widget sowieso vollständig damit ausfüllen willst? Ansonsten würde ich ein Layout im Widget platzieren und das QGraphicsView-Objekt in das Layout stecken.



  • Ich hab das mal mit QGridLayout ausprobiert. (via layout->addWidget(view))
    Das klappt schonmal erheblich besser; die view ist aber immer noch "gerahmt", sprich das Fenster nicht ganz ausgefüllt.



  • Die Layouts haben so eine margin Eigenschaft, die ist default 6 Pixel glaube ich. Alle Angaben ohne Gewähr, aber es liegt auf jeden Fall an einer Einstellung des Layouts.



  • wiso willst du überhaupt den QGraphicsView in ein QWidget füllend packen?
    Du kannst auch direkt den QGraphicsView verwenden ohne ein zusätzliches QWidget drumherum.



  • Mechanics schrieb:

    Die Layouts haben so eine margin Eigenschaft, die ist default 6 Pixel glaube ich. Alle Angaben ohne Gewähr, aber es liegt auf jeden Fall an einer Einstellung des Layouts.

    Ich habs mal mit QGridLayout::setSpacing()und setOriginCorner() ausprobiert. Hat sich aber nichts getan. Wie lässt sich denn diese Eigenschaften konkret ändern?




Anmelden zum Antworten