Wie gestaltet man den QTabBar-Rand der Konsole?

Wie gestaltet man den QTabBar-Rand der Konsole?

Ich habe diesen hässlichen Rahmen in meiner Konsole v16.04-Tableiste: Bildbeschreibung hier eingeben

Mein Profil-CSS:

QTabBar::tab {
    background: #002b36;
    color: #839496;
}
QTabBar::tab:selected {
    background: #073642
}
QTabBar {
    background: #002b36;
    border: none;  
}

Die borderEinstellungen 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 .cssvon 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

borderdas Attribut hat tatsächlich keine Wirkung. Sie müssen eher intuitiv das color„of“ QTabBarauf 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.

verwandte Informationen