2015-01-13 8 views
7

Ich versuche Padding zwischen Widgets in einem QMainWidget und den Kanten des QMainWidget zu erhöhen. Sie können das Problem im Bild unten:Padding zwischen QMainWindow und enthaltenen Widgets

Padding between edges

Es gibt keine Polsterung zwischen QTabWidget und dem linken Rand des Hauptfensters (das zentrale Widget des QMainWidget ist). Außerdem gibt es kein Padding zwischen QDockWidgets und der rechten Kante des Hauptfensters.

Ich habe versucht, Polsterung mit QSS Sheet zu erhöhen:

QMainWindow { 
    padding: 10px; 
    margin: 10px; 
    border: 5px solid red; 
} 

bekam aber einige wirklich unerwartetes Ergebnis:

Unexpected result

Ich habe versucht Aufruf setContentsMargins Methode, aber es ändert sich tatsächlich die Ränder um die zentrales Widget, wie der Name der Methode sagt.

Wie kann ich die Auffüllung zwischen QMainWindow und enthaltenen Widgets erhöhen? Gibt es eine Möglichkeit, es mit QSS zu ändern?

+0

Einfache Lösung wäre, ein einfaches 'QWidget' als zentrales Widget zu setzen und' contentsMargins' im Widget-Layout zu setzen. Dann fügen Sie einfach Ihr 'QTabWidget' dem Layout des Widgets hinzu. – thuga

+0

@ezzpresso hast du das jemals gelöst? Ich habe das gleiche Problem – Supamee

Antwort

1

Sie müssten alle in einen anderen Container setzen und diesen Container als zentrales Widget festlegen. Dann können Sie container.setContentsMargins() aufrufen

Verwandte Themen