Layout Problem [gelöst]

Alles rund um die Programmierung mit Qt
Antworten
Troll.Soft
Beiträge: 190
Registriert: 18. Juni 2008 09:52
Wohnort: Hamburg

Layout Problem [gelöst]

Beitrag von Troll.Soft »

Hallo,
ich habe mit QGrid ein Layout, das aus einem vertikalen und mehreren horizontalen Teilen besteht. Das Layout soll mit CSS gesteuert werden, da mit dem gleichen Layout auch eine Html-Seite erstellt wird. Sämtliche Margins und Paddings sollen auf Null stehen. Im horizontalen Teil funktioniert das wie angedacht. Im vertikalen nicht ?? !!. Kompletter Beispielcode liegt unten. Was mache ich falsch?
tschüß
Troll.Soft

Hier ist ein Bild des Ergebnisses. Der gesamte Rot-Anteil sollte nicht zu sehen sein.
Bild.png
Bild.png (2.24 KiB) 1860 mal betrachtet

Code: Alles auswählen

void exampleForQtForum()
{
	QWidget*		Widget2	= new QWidget(NULL);
	QGridLayout*	Grid2	= new QGridLayout(Widget2);
	Grid2->setSpacing(0);
	Widget2->setLayout(Grid2);
	Widget2->setStyleSheet("background-color:blue; border-width:10px; border-color:black; border-style:solid; margin:0px; padding:0px;");
	for ( int I = 0; I < 3; I++ )	{
		QWidget*		Widget1 = new QWidget(Widget2);
		QGridLayout*	Grid1	= new QGridLayout(Widget2);
		Grid1->setSpacing(0);
		Widget1->setLayout(Grid1);
		Widget1->setStyleSheet("background-color:red; border-width:0px; border-color:green; border-style:solid; margin:0px; padding:0px;");
			{
			QLabel* Label = new QLabel("Label-1", Widget2);
			Label->setStyleSheet("background-color:yellow; border-width:0px; border-color:white; border-style:solid; margin:0px; padding:0px;");
			Grid1->addWidget(Label, 0, 0);
			}
			{
			QLabel* Label = new QLabel("Label-2", Widget2);
			Label->setStyleSheet("background-color:yellow; border-width:0px; border-color:white; border-style:solid; margin:0px; padding:0px;");
			Grid1->addWidget(Label, 0, 1);
			}
			{
			QLabel* Label = new QLabel("Label-3", Widget2);
			Label->setStyleSheet("background-color:yellow; border-width:0px; border-color:white; border-style:solid; margin:0px; padding:0px;");
			Grid1->addWidget(Label, 0, 2);
			}
		Grid2->addWidget(Widget1, I, 0);
		}

	QDialog Dlg;
	QGridLayout* Grid = new QGridLayout(&Dlg);
	Grid->setSpacing(0);
	Grid->addWidget(Widget2, 0, 0);
	Dlg.exec();
}
Troll.Soft
Beiträge: 190
Registriert: 18. Juni 2008 09:52
Wohnort: Hamburg

Re: Layout Problem [gelöst]

Beitrag von Troll.Soft »

Das Brett vorm Kopf wurde plötzlich durchsichtig und die Lösung lag in der Doku.

Code: Alles auswählen

setContentsMargins(0, 0, 0, 0);
tschüß
Troll.Soft
Antworten