В таблицах стилей Qt есть что-то, чего я не понимаю.Я просто хотел бы установить цвет фона виджета на белый.Но по какой-то причине цвет фона на самом деле появляется только у потомков моего виджета.
Я пытался добавить self.setAutoFillBackground(True)
в свой код, но безуспешно.
Я также пытался выбрать палитру из https://wiki.qt.io/How_to_Change_the_Background_Color_of_QWidget. Это сработало, но только если я не установил таблицу стилей, которая необходима для нижней границы.
class TopLabelNewProject(qt.QWidget):
def __init__(self, parent=None):
super().__init__(parent)
layout = qt.QHBoxLayout(self)
layout.setContentsMargins(40, 0, 32, 0)
self.setLayout(layout)
self.setFixedHeight(80)
self.setStyleSheet("""
background-color: white;
border-bottom: 1px solid %s;
""" % colors.gray)
self.label = qt.QLabel("Dashboard")
self.label.setStyleSheet("""
QLabel {
font: medium Ubuntu;
font-size: 20px;
color: %s;
}""" % colors.gray_dark)
layout.addWidget(self.label, alignment=qt.Qt.AlignLeft)
self.newProjectButton = Buttons.DefaultButton("New project", self)
layout.addWidget(self.newProjectButton, alignment=qt.Qt.AlignRight)
Примечание: Buttons.DefaultButton - это просто QPushButton с пользовательской таблицей стилей.
Это то, чего я хотел бы достичь, белая панель заголовка с меткой и кнопкой:
Но только метка получает белый фон.