Qtabwidget tabposition quando si utilizzano fogli di stile
-
27-10-2019 - |
Domanda
Attualmente sto usando fogli di stile per tema un'applicazione. Ecco il foglio di stile che uso per 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;
}
Con questo, quando Tabposition è impostata a nord o sud, nessun problema. Ma con est o ovest, il confine del tabbar non è disegnato correttamente.
Qualcuno sa come modellare un tabbar con tabposition impostata su East/West?
Soluzione
Dal Pagina di riferimento di Qt Stylesheet:
Il: superiore ,: sinistra ,: destra ,: pseudo in basso Stati a seconda dell'orientamento delle schede.
Quindi, ad esempio, per applicare la tua prima regola CSS all'orizzontale QTabBar
S:
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;
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow