Ich habe diesen hässlichen Rahmen in meiner Konsole v16.04-Tableiste:
Mein Profil-CSS:
QTabBar::tab {
background: #002b36;
color: #839496;
}
QTabBar::tab:selected {
background: #073642
}
QTabBar {
background: #002b36;
border: none;
}
Die border
Einstellungen scheinen hier nichts zu bewirken :(
Hier sind einige Dokumente für Qts QTabBar:http://doc.qt.io/qt-4.8/stylesheet-reference.html#qtabbar-widget Und bezüglich der Konsole-Stylesheets für die Tab-Leiste:https://docs.kde.org/trunk5/en/applications/konsole/tabbarstylsheet.html
Hat jemand eine Idee, warum Konsole diese Einstellung nicht respektiert?
Antwort1
Versuchen Sie die Einstellung border-width: 0
(siehe hier), und vielleicht border-radius: 0
(Hier). Ich bin nicht ganz sicher, wo ich diese einstellen soll, die Dokumentation schlägt in einem QLineEdit{...
Abschnitt etwas vor.
Nebenbei bemerkt, ich konnte nicht bestätigen, dass eines davon funktioniert, da meine Konsole sich weigert, die .css
von mir erstellten Profile zu finden. Beim Versuch, dieses Problem zu beheben, bin ich auf die oben genannten Informationen gestoßen, die Ihnen hoffentlich weiterhelfen.
Antwort2
border
das Attribut hat tatsächlich keine Wirkung. Sie müssen eher intuitiv das color
„of“ QTabBar
auf den gleichen Wert wie das background
„of“ setzen QTaBar::tab
. Vielleicht handelt es sich um einen Fehler. Hoffentlich haben Sie diese Lösung vor dieser Antwort gefunden. Mit diesem Fix sieht das Stylesheet in der Frage folgendermaßen aus:
QTabBar::tab {
background: #002b36;
color: #839496;
}
QTabBar::tab:selected {
background: #073642
}
QTabBar {
background: #002b36;
color: #002b36;
}
Antwort3
Für Konsole 22.12.3 (Qt 5.15.8) konnte ich alle Ränder entfernen, indem ich sie aus QTabWidget
(sieheHier):
QTabWidget::pane {
border: none;
}
QTabWidget::tab-bar {
border: none;
}
Antwort4
Etwas abseits vom Thema, aber vielleicht trotzdem für einige, die hierher kommen, hilfreich: In einer auf PyQt5 basierenden App (Qt 5.15.2) mit Fusion und benutzerdefiniertem Dunkelmodus habe ich zunächst in einem Stylesheet so ziemlich alles Mögliche ausprobiert, um so eine weiße Rahmenlinie am unteren Rand einer unabhängigen (d. h. nicht innerhalb eines QTabWidgets stehenden) QTabBar loszuwerden, genau wie im Screenshot oben gezeigt, ohne Erfolg, es schien nichts zu geben, was ich in einem Stylesheet tun konnte, um ihre Farbe zu ändern oder sie zu entfernen. Aber schließlich wurde mir klar, dass ich nur tabBar.setDrawBase(False) aufrufen musste, um sie loszuwerden. Beim programmgesteuerten Erstellen einer QTabBar scheint drawBase standardmäßig auf True eingestellt zu sein, und das war in meinem Fall das Problem.
Ich vermute aber, dass Sie diese Eigenschaft in der Konsole nicht ändern können, ohne sie neu zu kompilieren. Deshalb ist meine Antwort wahrscheinlich nicht zum Thema.