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;
}