[gelöst] Aspect Ratio und QSizePolicy
Verfasst: 3. Dezember 2009 17:27
Hallo werte Netzgemeinschaft!
Hab ein Problem und zwar:
Ich erstelle eine Klasse DisplayWidget die von QWidget abgeleitet ist und in ein QMdiSubWindow gesetzt wird.
Diese Klasse soll QImages darstellen, wobei wenn die Grösse von DisplayWidget geändert wird, sollte Aspect Ratio von DisplayWidget/QMdiSubWindow beibehaltet werden, was zur Zeit nicht der Fall ist.
Hier ist mein Quellcode:
QSizePolicy sizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
for (int i=numWindows-1; i>=0; i--)
{
subWindow[i] = new QMdiSubWindow;
displayWidget[i] = new DisplayWidget();
subWindow[i]->setWidget(displayWidget[i]);
subWindow[i]->setAttribute(Qt::WA_DeleteOnClose);
sizePolicy.setHeightForWidth(subWindow[i]->sizePolicy().hasHeightForWidth()); //hab hier auch mal vergeblich mit sizePolicy.setHeightForWidth(true); versucht
subWindow[i]->setSizePolicy(sizePolicy);
mdiArea->addSubWindow(subWindow[i]);
}
Wie soll ich hier vorgehen?
Hab ein Problem und zwar:
Ich erstelle eine Klasse DisplayWidget die von QWidget abgeleitet ist und in ein QMdiSubWindow gesetzt wird.
Diese Klasse soll QImages darstellen, wobei wenn die Grösse von DisplayWidget geändert wird, sollte Aspect Ratio von DisplayWidget/QMdiSubWindow beibehaltet werden, was zur Zeit nicht der Fall ist.
Hier ist mein Quellcode:
QSizePolicy sizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
for (int i=numWindows-1; i>=0; i--)
{
subWindow[i] = new QMdiSubWindow;
displayWidget[i] = new DisplayWidget();
subWindow[i]->setWidget(displayWidget[i]);
subWindow[i]->setAttribute(Qt::WA_DeleteOnClose);
sizePolicy.setHeightForWidth(subWindow[i]->sizePolicy().hasHeightForWidth()); //hab hier auch mal vergeblich mit sizePolicy.setHeightForWidth(true); versucht
subWindow[i]->setSizePolicy(sizePolicy);
mdiArea->addSubWindow(subWindow[i]);
}
Wie soll ich hier vorgehen?