Seite 1 von 1

Horizontales resizen klappt nicht?!

Verfasst: 13. Februar 2008 11:47
von slash-ex
ich verstehe eine Sache nicht ganz, wenn ich ein Fenster habe und darin ein Widget ist, was sich automatischin einem festen Verhältnis (zb 4:3) verhalten soll, warum klappt dann nur die obere Funktion und die untere gar nicht?

Code: Alles auswählen

	// Widget zu schmal -> Hoehe verkleinern.
	if(width()/height() < 0.99*tableRel)  //KLAPPT
		resize(width(),(int)(width() / tableRel));

	// Widget zu breit -> Breite verkleinern.
	if(width()/height() > 1.01*tableRel)  //NICHT
		resize((int)(height() * tableRel), height());
hmm, klappt doch, habe ich grade bemerkt, anscheinend aber sehr schlecht. ab einer gewissen sprunggröße leider nicht mehr.

Verfasst: 13. Februar 2008 12:50
von macman
So ist das auch schlecht gelöst. Besser so: (ohne Gewähr)

Code: Alles auswählen

void Window::resizeEvent(QResizeEvent* e)
{
	int w = e->size().width();
	int h = e->size().height();
	if(w/h < 0.99*tableRel)
		h = w / tableRel;

	if(w/h > 1.01*tableRel)
		w = height * tableRel;

 	setGeometry(x(), y(), w, h);
}