QTabWidget TabPosition lors de l'utilisation des feuilles de style
-
27-10-2019 - |
Question
Je suis actuellement en utilisant les feuilles de style à thème une application. Voici la feuille de style que je utilise pour QTabWidget:
/*QTabBar et QTabWidget*/
QTabBar::tab {
background: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(73, 73, 74, 255), stop:1 rgba(40, 40, 40, 255));
border: 1px solid rgb(190, 190, 190);
max-height: 0.6em;
min-width: 0.6em;
padding: 5px;
margin-left: -1px;
margin-right: -1px;
}
QTabBar::tab:selected, QTabBar::tab:hover {
background: qlineargradient(spread:pad, x1:0.5, y1:1, x2:0.5, y2:0, stop:0 rgba(39, 117, 219, 255), stop:1 rgba(107, 171, 249, 255));
}
QTabBar::tab:last {
border-top-right-radius: 3px;
border-bottom-right-radius: 3px;
margin-right: 0px;
}
QTabBar::tab:first {
border-top-left-radius: 3px;
border-bottom-left-radius: 3px;
margin-left: 0px;
}
QTabBar::tab:only-one {
border-radius: 3px;
margin: 0px;
}
Avec cela, quand TabPosition est réglé sur Nord ou du Sud, pas de problème. Mais avec Est ou Ouest, la frontière du TabBar est pas correctement style.
Faire quelqu'un savoir comment le style TabBar avec TabPosition ensemble à l'est / ouest?
La solution
De la Qt stylesheet page de référence :
Le: top,: à gauche,: droite,: les états pseudo bas en fonction du orientation des onglets.
Ainsi, par exemple, pour appliquer votre première règle css aux QTabBar
s horizontales:
QTabBar::tab:top, QTabBar::tab:bottom {
background: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(73, 73, 74, 255), stop:1 rgba(40, 40, 40, 255));
border: 1px solid rgb(190, 190, 190);
max-height: 0.6em;
min-width: 0.6em;
padding: 5px;
margin-left: -1px;
margin-right: -1px;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow