Seite 1 von 1

Frage zu QLayout

Verfasst: 7. Dezember 2007 20:34
von spit
Hallo,

ich habe eine kleine Frage zu einem QLayout. ich möchte verschiedene Widgets in verschiedene QH/QVBox-Layouts positionieren und dies dann alles in ein komplettes Layout packen. Dabei sollen die Widgets möglichst centimeter/pixelgenau an verschiedenen Positionen angeordnet sein. Ich habe das bis jetzt mit addStretch bzw addSpacing versucht, aber das klappt irgendwie nicht so richtig.

Gibt es da einen elegenateren Weg Widgets in einem Layout trotzdem noch frei zu positionieren? Ein zweiter Ansatz lief über widget->setGeometry, alledings wird das Widget dann gar nicht angezeigt.

MfG

Verfasst: 7. Dezember 2007 20:52
von upsala
Zentimetergenau? Woher weist wie groß dein Bildschirm ist? Pixelgenau? Woher weist du wie groß die eingestellt Schriftgröße ist?

Verfasst: 7. Dezember 2007 20:57
von spit
war vielleicht ein wenig falsch ausgedrück, ich müsste halt verschiedene widgets an einem ganz bestimmt Platz positionieren der beispielsweise auf der Höhe einer Markierung am Bildschirmrand ist. Wenn man verschiedene QLayouts kombiniert, dann kriege ich das nie so genau hin, da eine Änderung dich immer auf alle anderen Layouts auswirkt.

Verfasst: 8. Dezember 2007 16:41
von spit
Ich habe es jetzt nochmal ein wenig anders versucht, hier einmal ein kleiner Ausschnitt:

Code: Alles auswählen

void Unit::createIdentPage()
{
	identPage = new QWidget;
	identPage->setGeometry(500, 500, 480, 640);

	//Titel der Seite
	identTitel = new QLabel("<h4><font color = white><FONT FACE=SANS SERIF>TITEl</font></h4>");

identTitel->setGeometry(500, 500, 200, 300);
Problem ist nun, dass dieses Label innerhalb des übergeordneten Widgets nicht angezeigt wird. Liegt der Fehler irgendwo im Code?

MfG

Verfasst: 9. Dezember 2007 00:40
von Vaaco
Ist das übergeordnete Widget parent vom Label, wird das Label angezeigt, sobald das übergeordnete Widget angezeigt wird.

Verfasst: 9. Dezember 2007 11:17
von spit
Das Widget selber ist in ein QStackedWidget eingebettet. Sobald das Widget dann angezeigt wird, sollte auch das QLabel angezeigt werden.

Positioniere ich es mittels QLayout klappt auch alles, nur die methode setGeometry scheint irgendwie nicht richtig zu funktionieren.

MfG

Verfasst: 9. Dezember 2007 12:30
von Vaaco
Dann sind evtl. die Koordinaten nicht korrekt. Wenn ich das richtig sehe wird dein Label von dem Widget "identPage" überdeckt.

Verfasst: 9. Dezember 2007 12:36
von spit
Die Koordinaten sollten eigentlich stimmen.

Eigentlich sollte das Label identTitel auf dem Widget idenPage liegen. Wie gesagt, durch Layout-Positionierung klappt das auch.

Wie kann ich denn über die setgeometry-Methode festlegen, dass das Label auf dem Widget liegt?