Hallo allerseits,
seit längerer Zeit versuche ich (bisher leider mit wenig bis gar keinem Erfolg) ein Widget so einzustellen, dass die Höhe und Breite immer relativ zueinander sind.
Ergo: vergrössert man die Breite, so ändert sich die Höhe (nach einem festgelegten Faktor) auch. Hab dazu natürlich auch schon die heightForWidth() überschrieben und mit QSizePolicy und setHeightForWidth und hasHeightForWidth rumgespielt, aber es halt bisher alles nicht zum erfolg geführt.
Leider hab ich auch weder in der qt-Doku, noch hier im Forum existierenden Code gesehen, der sich dieses Problem behandelt.
Ich würde mich um eine Antwort, sei es auch nur eine Referenz wo man Beispielcode finden kann, sehr freuen.
Gruß
Roman
Resizing + Höhe relativ zur Breite
-
romankreisel
- Beiträge: 4
- Registriert: 22. Oktober 2007 09:12
- Kontaktdaten:
Damit wenigstens einer antwortet
Ungefähr so:
Aber wahrscheinlich hast Du es inzwischen selbst heraus bekommen.
Code: Alles auswählen
void myWidget::resize( int w, int h )
{
if (w > h)
w = h;
else if (w < h)
h = w;
setGeometry(x(), y(), w, h);
}
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
-
romankreisel
- Beiträge: 4
- Registriert: 22. Oktober 2007 09:12
- Kontaktdaten:
hab soeben mal resizeEvent überschrieben, jedoch ergibt sich daraus keine positive Änderung (einzige Änderung die mir auffält: er ignoriert natürlich mein "hasHeightForWidth", ist auch klar, ich hab ja was dies betrifft nicht den alten code reimplementiert)
Mal davon abgesehen sagt die Qt-Doku aus, dass eine Änderung der "geometry"-Eigenschaft ein resizeEvent auslöst. Ich denke die Gefahr ist nicht gering, dass man hierbei in einer endlosschleife endet.
Gruß
Roman
Mal davon abgesehen sagt die Qt-Doku aus, dass eine Änderung der "geometry"-Eigenschaft ein resizeEvent auslöst. Ich denke die Gefahr ist nicht gering, dass man hierbei in einer endlosschleife endet.
Gruß
Roman
-
romankreisel
- Beiträge: 4
- Registriert: 22. Oktober 2007 09:12
- Kontaktdaten:
Nachtrag:
ein Hübscher satz aus http://doc.trolltech.com/3.3/qwidget.html#geometry-prop:
Warning: Calling setGeometry() inside resizeEvent() or moveEvent() can lead to infinite recursion.
ein Hübscher satz aus http://doc.trolltech.com/3.3/qwidget.html#geometry-prop:
Warning: Calling setGeometry() inside resizeEvent() or moveEvent() can lead to infinite recursion.