Alles rund um die Programmierung mit Qt
nando
Beiträge: 321 Registriert: 28. Oktober 2004 13:16
Beitrag
von nando » 7. Dezember 2007 11:15
Hi,
wie kann ich denn die Abstände zu den Rändern eines Widgets einstellen?
Ich habe z.b ein Main-Widget dass ein QHBoxLayout hat. In dem Layout sind mehrere QLabel's.
Code: Alles auswählen
Main-Widget:
+-------------------------+
| |
| L1 L2 L3 .... | QHBoxLayout mit mehren Labels.
| |
+-------------------------+
Zwischen den Rändern des Main-Widgets und den einzelnen Labeln ist ein Abstand, den möchte ich minimieren..... Dass es am ende etwa so aussieht:
Code: Alles auswählen
Main-Widget:
+--------------------+
|L1 L2 L3 .... |
+--------------------+
Gruss,
Nando
Ulli
Beiträge: 7 Registriert: 6. Dezember 2007 17:02
Beitrag
von Ulli » 7. Dezember 2007 11:25
Hi,
versuch es mit QLayout::setMargin und QLayout::setSpacing.
QLayout::setMargin regelt den Abstand zum Parent
QLayout::setSpacing regelt den Anstand der Widgets im Layout.
nando
Beiträge: 321 Registriert: 28. Oktober 2004 13:16
Beitrag
von nando » 7. Dezember 2007 11:43
Hi,
danke..
also layout->setMargin(0) is schon mal ganz gut, zumindest was die horizontalen Abstände angeht....
aber nach oben hin zum rand sind immer noch paar pixel... ??
Gruss,
Nando
Ulli
Beiträge: 7 Registriert: 6. Dezember 2007 17:02
Beitrag
von Ulli » 7. Dezember 2007 11:48
Dann kontrllier mal die Widgets in deinem Layout, ob die nicht auch einen Rand setzen.
QLabels haben auch die setMargin() Methode.
nando
Beiträge: 321 Registriert: 28. Oktober 2004 13:16
Beitrag
von nando » 7. Dezember 2007 11:53
hab ich schon probiert...
ich mache ja direkt nach dem ... new QLabel....
layout->addWidget(pLabel);
und der default margin von QLabel ist 0.... Hhmmmmm
komisch....
also wie gesagt horizontal gehts wunderbar..
beim margin 0 faengt das label direkt am rand an, ohne pixel dazwischen..
aber nach oben sind immer so ca. 5 pixel......
gruss
nando
Ulli
Beiträge: 7 Registriert: 6. Dezember 2007 17:02
Beitrag
von Ulli » 7. Dezember 2007 12:08
Versuch es mal damit:
QLayout::setContentsMargins ( int left, int top, int right, int bottom )
Dann solltest du die einzelnen Margins für oben, unten, links und rechts getrennt einstellen können.
nando
Beiträge: 321 Registriert: 28. Oktober 2004 13:16
Beitrag
von nando » 7. Dezember 2007 15:52
hmm. leider bringt auch das nichts..
ich schau noch mal genau nach..
wenn ich was rausfinde sag ich bescheid..
trotzdem danke!
gruss,
nando
Flachkoepper
Beiträge: 149 Registriert: 11. Januar 2005 12:14
Wohnort: Hannover
Beitrag
von Flachkoepper » 10. Dezember 2007 09:23
Sicher, dass dieser Abstand nach oben vom Layout herrührt und nicht von der Größe der Schrift? Gib deinen Labels mal einen farbigen Hintergrund, dann siehst du die wahren Ausmaße des Labels.
Bei mir funzt setMargin(0) nämlich prima.