Seite 1 von 1

[gelöst] Qt4: Abstände in Widgets

Verfasst: 7. Dezember 2007 11:15
von nando
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

Verfasst: 7. Dezember 2007 11:25
von Ulli
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.

Verfasst: 7. Dezember 2007 11:43
von nando
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

Verfasst: 7. Dezember 2007 11:48
von Ulli
Dann kontrllier mal die Widgets in deinem Layout, ob die nicht auch einen Rand setzen.
QLabels haben auch die setMargin() Methode.

Verfasst: 7. Dezember 2007 11:53
von nando
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

Verfasst: 7. Dezember 2007 12:08
von Ulli
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.

Verfasst: 7. Dezember 2007 15:52
von nando
hmm. leider bringt auch das nichts..
ich schau noch mal genau nach..
wenn ich was rausfinde sag ich bescheid..
trotzdem danke!

gruss,
nando

Verfasst: 10. Dezember 2007 09:23
von Flachkoepper
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.