Après avoir cherché pendant un certain temps, je me suis aperçu que la propriété StyleSheet était un moyen de définir une bordure visible sur une zone de groupe. J'ai ajouté:
border: 2px solid gray;
mais il y a quelques problèmes.
1) Tout ce qui se trouve dans la zone de groupe hérite également de ce paramètre!
2) Il manque un petit trou/morceau à la frontière près du titre.
Voici une photo de ce dont je parle:
Quelqu'un sait comment faire cela correctement?
Merci,
David
Le premier problème est assez simple. Lorsque vous ajoutez une feuille de style à un contrôle, il propage automatiquement le style à tous les widgets enfants. Cependant, vous pouvez limiter l'utilisation de la feuille de style de plusieurs manières. Vous pouvez spécifier le type de contrôle que vous souhaitez appliquer à la feuille de style. Exemple:
QGroupBox {
border: 2px solid gray;
border-radius: 3px;
}
Cette feuille de style ne sera définie que sur les zones de groupe. Cependant, si vous mettez une deuxième zone de groupe à l'intérieur de celle-ci, le style se propage également à celle-ci. Ce qui peut être bon ou mauvais.
Une autre méthode consiste à spécifier spécifiquement le nom d'objet du widget auquel vous appliquez le style. Exemple:
QGroupBox#MyGroupBox {
border: 2px solid gray;
border-radius: 3px;
}
Cela appliquera uniquement le style à une zone de groupe avec un nom d'objet MyGroupBox.
Pour ce qui est de l'espace, cela se produit parce que le titre est tracé au-dessus de votre bordure. Vous pouvez également ajouter une section à votre feuille de style pour modifier le titre de votre zone de groupe. Cela inclut la définition de l'arrière-plan sur transparent et le déplacement du titre vers le contenu de votre coeur.
Exemple: votre titre sera placé dans le coin supérieur gauche de la zone de groupe, juste à l’intérieur de votre bordure, sans espace.
QGroupBox::title {
background-color: transparent;
subcontrol-position: top left; /* position at the top left*/
padding:2 13px;
}
cela a fonctionné pour moi sur Qt 5.1.
qApp->setStyleSheet("QGroupBox { border: 1px solid gray;}");
Elimeléc
Spécifiez un sélecteur pour le style de zone de groupe, tel que:
QGroupBox
{
border: 2px solid gray;
}
Pour ce qui est de l’écart, vous pouvez probablement résoudre ce problème en définissant un remplissage. Vérifiez la documentation ici .