22 Stimmen

QGroupBox Rahmen

Nachdem ich eine Weile gesucht habe, habe ich gesehen, dass man einen sichtbaren Rahmen für ein Gruppenfeld mit der Eigenschaft StyleSheet festlegen kann. Ich habe hinzugefügt:

border: 2px solid gray;

aber es gibt eine Reihe von Problemen.

1) Alles innerhalb der Groupbox erbt auch diese Einstellung!

2) Der Rand hat ein kleines Loch/Stück, das in der Nähe des Titels fehlt.

Hier ist ein Bild von dem, wovon ich spreche: alt text

Weiß jemand, wie man das richtig macht?

Danke,

David

35voto

Liz Punkte 8617

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

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

Diese Formatvorlage wird nur für Gruppenfelder verwendet. Wenn Sie jedoch einen zweiten Gruppenrahmen innerhalb dieses Rahmens einfügen, wird die Formatvorlage auch auf diesen übertragen. Das kann gut oder schlecht sein.

Eine andere Möglichkeit besteht darin, den Objektnamen 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 einen Gruppenrahmen mit dem Objektnamen MyGroupBox angewendet.

Die Lücke entsteht, weil der Titel über den Rahmen gezeichnet wird. Sie können auch einen Abschnitt in Ihre Formatvorlage aufnehmen, um den Titel Ihrer Groupbox zu ändern. Dazu gehört auch, dass Sie den Hintergrund auf transparent setzen und den Titel nach Belieben verschieben können.

Beispiel: Damit wird Ihr Titel in die linke obere Ecke des Gruppenrahmens gesetzt, genau innerhalb des Rahmens, ohne Lücke.

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

1voto

zibetto Punkte 21

Das hat bei mir unter Qt 5.1 funktioniert.

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

Elimeléc

0voto

Arnold Spence Punkte 21356

Geben Sie einen Selektor für den Gruppenrahmenstil an, z. B:

QGroupBox
{
     border: 2px solid gray;
}

Was die Lücke betrifft, so können Sie diese wahrscheinlich durch das Einfügen von Füllmaterial beheben. Prüfen Sie die Dokumente hier .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X