Как я могу использовать внешнюю таблицу стилей для проекта PyQt4?

#python #qt #user-interface #pyqt4

#python #qt #пользовательский интерфейс #pyqt4

Вопрос:

Я просто создаю удаленное приложение с pyqt4. Итак, в пользовательском интерфейсе много css. Мне было интересно, как использовать внешние таблицы стилей, например, в веб-приложениях.

Например:

 button_one.setStyleSheet("QPushButton { background-color:#444444; color:#ffffff; border: 2px solid #3d3d3d; width: 15px; height: 25px; border-radius: 15px;}"
                                 "QPushButton:pressed { background-color:#ccc;}")
Instead of the above code 
button_one.setStyleSheet("QPushButton.styleclass or #styleid")
 

Ответ №1:

Нет необходимости устанавливать таблицу стилей для каждого виджета. Просто установите одну таблицу стилей для всего приложения:

 stylesheet = """
QPushButton#styleid {
    background-color: yellow;
}
QPushButton.styleclass {
    background-color: magenta;
}
QPushButton {
    color: blue;
}
"""

QtGui.qApp.setStyleSheet(stylesheet)    
 

Идентификатор qss виджета может быть указан с помощью setObjectName :

 button_one.setObjectName('styleid')
 

Класс qss может быть указан с помощью setProperty :

 button_two.setProperty('class', 'styleclass')
 

Для других селекторов qss см. раздел Типы селекторов в документах Qt.

Комментарии:

1. Это было полезно и для меня — я не знал, что мы можем использовать свойство set .

Ответ №2:

Прохладный. Большое вам спасибо за ваш ответ. Это помогло мне окончательно разделить мои стили 🙂

Просто определил все стили моих приложений во внешнем файле и связал на требуемой странице. styleFile = «styles/remote.stylesheet» с открытым (styleFile, «r») как fh: self.setStyleSheet(fh.read())