ich habe mal ein paar Fragen zum Neuzeichnen von Fenstern:
1) Ich habe ein QGraphicsView-Fenster, das eine QGraphicsScene a hat. Nun möchte ich über einen Slot, eine andere QGraphicsScene b ins GraphicsView-Fenster laden. QGraphicsScene a soll dabei aber nicht gelöscht werden, da sie später noch benötigt wird.
Bei folgendem Code wird die alte Scene nur übermalt und an den Teilen, wo nichts neues drüber gezeichnet wird, scheint die alte Scene halt durch.
Code: Alles auswählen
setScene(b);
repaint();
qApp->processEvents();
2) Im zweiten Fall habe ich ein TabWidget, in dem oben ein Formularfeld zum Hinzufügen eines Widgets vorhanden ist und unten eine Liste von Widgets zum Editieren von Daten. Wenn man in dem Formular ein Widget hinzufügt, sollte es sofort unten erscheinen und die Liste bzw. das ganze Fenster aktualisiert werden. Im Moment mache ich es so, dass ich beim Hinzufügen eines Widgets per Formular das Layout des TabWidgets lösche und neu erstelle, aber das TabWidget wird dadurch nicht neu gezeichnet.
Ich habe jetzt schon repaint() und update() ausprobiert (auch mit qapp->processEvents() ), aber das TabWidget wird einfach nicht aktualisiert.
Wenn ich den Dialog mit dem TabWidget schließe und neu öffne, ist das neu eingefügte Widget aber vorhanden.
Hat jemand einen Tipp, wie ich die Widgets aktualisieren kann?