Я знаю, что QML не поддерживает стили CSS, например, виджеты, и я читал об альтернативных подходах к стилизации/тематике:
- https://qt-project.org/wiki/QmlStyling
- http://www.slideshare.net/BurkhardStubert/practical-qml-key-navigation/34
Общим для этих подходов является то, что они требуют, чтобы разработчик указывал части QML, которые можно стилизовать, либо путем привязки к свойству в "стиле QML файла /singleton ", либо с помощью Loader для загрузки другого QML на основе имени стиля. Я бы хотел, чтобы это было похоже на селектор "id" в CSS вместо селектора "class", так что отдельные файлы QML не должны знать, будут ли они введены позже или нет.
Мой текущий подход делает все QML файлы похожими на это (используя подход в ссылке 2):
Main.qml
Rectangle {
Id: background
color: g_theme.background.color
//g_theme is defined in root context and loaded dynamically
}
Что я хотел бы сделать:
Main.qml
Rectangle {
Id: background
color: "green" // default color
}
И затем создайте файл стиля, который определяет (или аналогичный)
Main.qml #background.color: red
Возможно ли это на данный момент или что-то, что находится в стадии разработки для будущей версии Qt, или предпочтительный способ стилизации по-прежнему будет похож на подход, описанный в ссылках выше?