2016-06-28 26 views
1

Ich habe QGroupBox in meiner Benutzeroberfläche. Der grundlegende Stil ist wie 2px Breite Rahmen, Rahmenradius und der Titel wird vertikal zentriert.QGoupBox Titel vertikale Ausrichtung

ich verwenden, um den folgenden Stil meiner Sheet (die in einem .qrc ist in der Hauptsache angewandt mit app-> setStylesheet):

QGroupBox { 
    border: 1px solid #22a4bc; 
    border-radius: 0px; 
} 

QGroupBox::title { 
    subcontrol-origin: margin; 
    subcontrol-position: top; /* position at the top center */ 
} 

Das Problem ist: Der Titel ist jetzt ein paar Pixel nach unten und tatsächlich über das Element IN der Groupbox.

Ich möchte es zentriert setzen. Ich versuchte vertikale Ausrichtung, subcontrol-align, subcontrol-Ausrichtung, sogar top: -5px, die eigentlich den Titel zentriert, aber den Text trimmen, der höher als der Rand ist. Ich habe hier keine Antwort auf SO oder im Qt-Forum gefunden, die mein Problem lösen.

Weiß jemand, wie man die vertikale Ausrichtung des Titels auf Back-Center setzt? (ich benutze C++, Qt 5.2.1/msvc2012, Qt Creator 3.6.1/Windows 7)

Antwort

1

ich meinen Fehler verstanden: Nach dem Box-Modell (Marge> Grenze> Polster> Inhalt), der Ursprung mein Text war am Rand. Aber es gab keinen Spielraum in meiner QGroupBox, also war es komisch.

kam ich mit diesem Stil auf, die das tut, was ich will:

QGroupBox { 
    border: 1px solid #22a4bc; 
    border-radius: 0px; 
    padding-top: 10px; 
    margin-top: 5px; 
} 

QGroupBox:title { 
    subcontrol-origin: margin; 
    subcontrol-position: top center; 
    margin-left: 3px; 
    margin-right: 3px; 
}