[gelöst] 2 Label in QVBoxLayout oben ausrichten

Alles rund um die Programmierung mit Qt
Antworten
MASTER-Tim
Beiträge: 12
Registriert: 15. August 2005 17:52
Wohnort: Berlin
Kontaktdaten:

[gelöst] 2 Label in QVBoxLayout oben ausrichten

Beitrag 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
Dateianhänge
Die untere Label soll oben sein (direkt unter der 1. Label).
<br />Die obere Label hat einen schwarzen Hintergrund... daher ist sie schwarz. Die untere Label nimmt auch nur so viel Platz ein, wie der Text hoch ist...
Die untere Label soll oben sein (direkt unter der 1. Label).
Die obere Label hat einen schwarzen Hintergrund... daher ist sie schwarz. Die untere Label nimmt auch nur so viel Platz ein, wie der Text hoch ist...
Fehler.jpg (13.8 KiB) 2115 mal betrachtet
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Re: 2 Label in QVBoxLayout oben ausrichten

Beitrag 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);
MASTER-Tim
Beiträge: 12
Registriert: 15. August 2005 17:52
Wohnort: Berlin
Kontaktdaten:

Beitrag von MASTER-Tim »

Hallo,


besten Dank, es funktioniert!


Tim
Antworten