PyQt5: QtStyleSheets не применяется к виджетам, созданным в других файлах ⇐ Python

Программы на Python
Anonymous
PyQt5: QtStyleSheets не применяется к виджетам, созданным в других файлах

Сообщение Anonymous »

Я пытаюсь создать макет, стилизованный с использованием внешнего файла CSS, поэтому я встроил его в QWidget, поскольку вы не можете напрямую стилизовать макеты.
Общий идентификатор QLabel применен правильно, проблема, похоже, возникает, когда я даю виджетам идентификатор, поскольку CSS не применяется. Класс SampleLabel находится в другом файле и импортирован в main.py. Это минимальная проблема, которую я мог понять.
Иерархия виджетов приведена ниже.

Код: Выделить всё

QWidget (Central)

QVBoxLayout

QWidget (I want to style this)

QVBoxLayout

QLabel
Main.py

Код: Выделить всё

class MainWindow(QMainWindow):

def __init__(self):
super().__init__()
self.setGeometry(200, 200, 400, 200)
self.setStyleSheet(open("style.css").read())

self.central_widget = QWidget()
self.setCentralWidget(self.central_widget)

self.vbox = QVBoxLayout()
self.central_widget.setLayout(self.vbox)

self.label = item.ExampleLabel()
self.vbox.addWidget(self.label)

def main():
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
item.py

Код: Выделить всё

class ExampleLabel(QWidget):
def __init__(self):
super().__init__()
self.vbox = QVBoxLayout()
self.setObjectName("example")

self.label = QLabel("Hello World")

self.vbox.addWidget(self.label)
self.setLayout(self.vbox)
style.css

Код: Выделить всё

QLabel {
font-size: 24px;
font-weight: bold;
}

QWidget#example {
background-color: grey;
}
Изображение


Подробнее здесь: https://stackoverflow.com/questions/790 ... ther-files

Вернуться в «Python»