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

Alles rund um die Programmierung mit Qt
Antworten
nando
Beiträge: 321
Registriert: 28. Oktober 2004 13:16

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

Beitrag 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
Ulli
Beiträge: 7
Registriert: 6. Dezember 2007 17:02

Beitrag 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.
nando
Beiträge: 321
Registriert: 28. Oktober 2004 13:16

Beitrag 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
Ulli
Beiträge: 7
Registriert: 6. Dezember 2007 17:02

Beitrag von Ulli »

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 »

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 »

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 »

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 »

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.
Antworten