Можно ли как то воспользоваться классами css в PyQT?

Рейтинг: 0Ответов: 1Опубликовано: 03.03.2023

Я знаю, что можно делать что-то подобное:

STYLE_SHEET = '''
QPushButton {
    background: #255983;
    font: bold 28px;
    color: #66B5FF;
    border-width: 2px;
    border-style: solid;
    border-color: #66B5FF;
    border-radius: 0px;
    text-align: center;
    outline: none;
}
QPushButton:hover {
    color: #00E5FF;
    border-color: #00E5FF;
    background: #007AFF;
    outline: none;
}
'''


if __name__ == '__main__':
    app = QApplication(sys.argv)
    app.setStyleSheet(STYLE_SHEET)
    w = MyWidget()
    w.resize(400, 300)
    w.show()
    sys.exit(app.exec_())

Но тут явно указаны названия элементов, для которых мы пишем css свойства. Можно ли тут использовать классы? И потом задавать для каждого элемента свой класс, вместо того чтобы, например, менять свойства для всех QPushButton?

Ответы

▲ 2Принят

Не совсем понятно в каком смысле вы используете класс, из контекста больше похоже на id.

Например, имя объекта кнопки myButton, то стиль задается так:

QPushButton#myButton {...}    

Также вы можете наследовать кнопку и таким образом создать новый класс. Стили для него создаются как и для библиотечных классов - с указанием имени

MyButtonClass {...}    

Больше информации и подробности можно найти вот тут