Seite 1 von 1

Fenster Proportionen halten

Verfasst: 13. April 2010 17:49
von ChornHulio
Hallo zusammen,

man kann QSize mit einer Proportion skalieren

Beispiel für Skalierung von 16:5

Code: Alles auswählen

void MainWindow::resizeEvent(QResizeEvent *e)
{
  QSize size(160,40);
  size.scale(e->size().width(),e->size().height(),Qt::KeepAspectRatio);
  resize(size);
}
Jetzt besteht hier aber das Problem, dass das eine Endlosschleife ist. Wie kann ich das verhindern?

Danke für eure Antworten!

Verfasst: 13. April 2010 21:00
von upsala
Warum führst du ein resize aus, wenn die Größe schon passt?

Verfasst: 13. April 2010 22:27
von ChornHulio
Ich will, dass das Fenster seine Proportionen behält. Also in dem Beispiel, soll das Fenster immer ein Seitenverhältnis von 16 zu 5 haben.

Verfasst: 14. April 2010 07:33
von upsala
Wenn die Größe passt, passt doch auch das Seitenverhältnis. Also: Warum führst du ein resize aus, wenn die Größe schon passt und wunderst dich über eine Endlosschleife?

Verfasst: 14. April 2010 08:27
von ChornHulio
Guten Morgen upsala,

ich glaub wir reden aneinander vorbei. Ich hätte es von Anfang an besser erklären sollen...

Ich will, dass der User das Fenster größer und kleiner ziehen kann, wie er will - aber eben nur mit einem bestimmten Seitenverhältnis.

Wie kann ich das realisieren?

Verfasst: 14. April 2010 16:46
von upsala

Code: Alles auswählen

if (size!=e->size()) {
  resize(size);
}