Seite 1 von 1

QMainWindow dynamisch den Size anpassen

Verfasst: 9. Mai 2011 11:49
von samir_bmw
Hallo Zusammen,

ich habe folgendes Problem: Meine QGraphicsScene bekommt ein Bild als Hintergrund.
Die Scene wird als MainWidget in MainWindow hinzugefügt.
Und je nach Bildgrößer ändert sich dynamisch auch MainWindow size.
Wie kann ich den MainWindow so anpassen, damit ich in MainWindow keinen Scrollbalken bekomme?
MainWindow muss fixedsize haben.

Verfasst: 9. Mai 2011 12:39
von franzf
QGraphicsView::fitInView schon mal angeschaut?

Verfasst: 9. Mai 2011 13:28
von samir_bmw
hallo,

ich glaube Sie haben mich falsch verstanden. Ich habe die Methode QGraphicsView::fitInView angeschaut, hab nicht so richtig verstanden.
Hier ist die Methode, die ich implementiert habe.

Code: Alles auswählen

void Scene::updateBackgroundBrush(const QImage &image)
{
    QSize imgSize = image.size();
    setSceneRect(0, 0, imgSize.width(), imgSize.height());
    setBackgroundBrush(QBrush(image));
}
Dann später in den MainWindow

Code: Alles auswählen

QSize imgSize = image.size();
setFixedSize(imgSize.width()  + 15,
                      imgSize.height() + (2 * toolBar->size().height()));
So habe ich es angepasst. Wenn ich nicht in MainWindow setFixedSize() aufruche, die Scene kachelt das Bild im hintergrund und das will ich nicht.
Wenn ich ein anderen Thema auswähle dann stimmt nicht mehr die Größe. Dann bekomme ich ein teil des Bilde (gekahelt) im oberen und unteren Rand des Scene.
Ich will den Kacheln durch die Scene vermeinden oder die Größe von MainWindow dynamisch anpassen.

Verfasst: 10. Mai 2011 18:55
von samir_bmw
Hallo,

hat Keiner eine Idee?

Verfasst: 16. Mai 2011 11:04
von MichaelS
Moin,

schon mal ein

Code: Alles auswählen

resize(imgSize);
versucht?

Gruß Michael