Seite 1 von 1

[gelöst] 2 Label in QVBoxLayout oben ausrichten

Verfasst: 5. Oktober 2005 19:59
von MASTER-Tim
Hallo,


ich habe einen QFrame. Auf diesen sollen 2 Labels kommen. Die 2 Labels sollen oben im Frame sein (Align Top), egal wie hoch dieser ist... Allerdings richtet QT irgendwie die untere Label in der Mitte des Frames an... (siehe Attachment)

Mein Code sieht folgendermaßen aus:

Code: Alles auswählen

	whiteframe = new QFrame();


	QPalette palette_own(whiteframe->palette()); // den Frame weiß machen...
	palette_own.setBrush(QPalette::Background, QBrush(QColor(255, 255, 255)));
	whiteframe->setPalette(palette_own);
	whiteframe->setMinimumSize(50, TEMPLATEFRAME_WHITEFRAME_HEIGHT);
	
	
	QLabel *headlinelabel = new QLabel; // die obere Label
	
	QFont font_bold;
	font_bold.setBold(true);
	headlinelabel->setFont(font_bold);

	
	QVBoxLayout *whiteframe_layout = new QVBoxLayout;
	
	
	headlinelabel->setText("HALLO HALLO HALLO HALLO HALLO HALLO HALLO HALLO HALLO HALLO HALLO HALLO HALLO HALLO HALLO HALLO HALLO HALLO ");

	
	
	QLabel *label = new QLabel; // die untere Label
	label->setWordWrap(true);
	

	

	label->setAlignment(Qt::AlignTop);
	label->setText("Dies ist der Text dafür... Weiter gehts und weiter. Dies ist der Text dafür... Weiter gehts und weiter. Dies ist der Text dafür... Weiter gehts und weiter. Dies ist der Text dafür... Weiter gehts und weiter.");
	
	
	whiteframe_layout->setSpacing(0);
	whiteframe_layout->addWidget(headlinelabel);
		whiteframe_layout->setAlignment(headlinelabel, Qt::AlignTop);
	
	whiteframe_layout->addWidget(label);
	whiteframe_layout->setAlignment(label, Qt::AlignTop);


	whiteframe->setLayout(whiteframe_layout);

Wie bekomm ich das hin, dass die 2. Label gleich unter der 1. ist?


Besten Dank!

Tim

Re: 2 Label in QVBoxLayout oben ausrichten

Verfasst: 6. Oktober 2005 08:51
von macman
MASTER-Tim hat geschrieben:Wie bekomm ich das hin, dass die 2. Label gleich unter der 1. ist?
Deutsche Sprach, schwere Sprach.
Als erstes würde ich mal beiden Label eine andere Hintergrundfarbe geben, dann sieht man das Problem besser.

Code: Alles auswählen

label->setPalette(QPalette(QColor(255,0,0)));
Wie Du jetzt siehst sind nicht die Label das Problem, sondern das Layout. Einfach einen Spacer hinzu und fertig.

Code: Alles auswählen

QSpacerItem* spacer=new QSpacerItem(1,1, QSizePolicy::Expanding, QSizePolicy::Expanding);
whiteframe_layout->addItem(spacer);

Verfasst: 6. Oktober 2005 10:35
von MASTER-Tim
Hallo,


besten Dank, es funktioniert!


Tim