webentwicklung-frage-antwort-db.com.de

QGroupBox-Rahmen

Nachdem ich eine Weile gesucht hatte, stellte ich fest, dass sie die StyleSheet-Eigenschaft verwenden, um einen sichtbaren Rahmen für ein Gruppenfeld festzulegen. Ich fügte hinzu:

border: 2px solid gray;

aber es gibt ein paar probleme.

1) Alles in der Gruppenbox übernimmt auch diese Einstellung!

2) Am Rand fehlt ein kleines Loch/Stück in der Nähe des Titels.

Hier ist ein Bild von dem, worüber ich spreche: alt text

Weiß jemand, wie man das richtig macht?

Vielen Dank,

David

17
David Doria

Das erste Problem ist einfach genug. Wenn Sie einem Steuerelement ein Stylesheet hinzufügen, wird der Stil automatisch an alle untergeordneten Widgets weitergegeben. Sie können die Verwendung des Stylesheets jedoch auf verschiedene Weise einschränken. Sie können den Typ des Steuerelements angeben, auf das das Stylesheet angewendet werden soll. Beispiel:

QGroupBox { 
     border: 2px solid gray; 
     border-radius: 3px; 
 } 

Dieses Stylesheet wird nur für Gruppenfelder festgelegt. Wenn Sie jedoch ein zweites Gruppenfeld in dieses Feld einfügen, wird der Stil auch auf dieses Feld angewendet. Welches gut oder schlecht sein kann.

Eine andere Möglichkeit besteht darin, spezifisch den objectName des Widgets anzugeben, auf das Sie den Stil anwenden. Beispiel:

QGroupBox#MyGroupBox { 
     border: 2px solid gray; 
     border-radius: 3px; 
 } 

Dadurch wird der Stil nur auf ein Gruppenfeld mit dem Objektnamen MyGroupBox angewendet.

Das Leerzeichen geschieht, weil der Titel über dem Rand gezeichnet wird. Sie können Ihrem Stylesheet auch einen Abschnitt hinzufügen, um den Gruppentitel zu ändern. Dazu gehört, den Hintergrund auf transparent zu setzen und den Titel nach Herzenslust zu verschieben.

Beispiel: Dadurch wird Ihr Titel in der oberen linken Ecke des Gruppenfelds direkt innerhalb der Grenze ohne Lücke festgelegt.

QGroupBox::title { 
    background-color: transparent;
     subcontrol-position: top left; /* position at the top left*/ 
     padding:2 13px;
 } 
32
Liz

das funktionierte für mich bei Qt 5.1.

qApp->setStyleSheet("QGroupBox {  border: 1px solid gray;}");

Elimeléc

1
zibetto

Geben Sie einen Selektor für den Gruppenrahmenstil an:

QGroupBox
{
     border: 2px solid gray;
}

Was die Lücke angeht, können Sie dies möglicherweise beheben, indem Sie eine Auffüllung festlegen. Überprüfen Sie die Dokumente hier .

0
Arnold Spence