QML中如何使用QSS?尝试了诸多方法,比如:Qt.styleSheet.load("qss.qss"),后来发现可以借助.js文件来实现多套qss的切换,具体方法如下:
1、编写main.qml
import QtQuick 2.14
import QtQuick.Controls 2.14
import "testtheme.js" as Theme
ApplicationWindow {
visible: true
width: 640
height: 480
title: qsTr("Working Log Tool")
//use qss by Theme
Button{
text: Theme.text
palette.buttonText: Theme.fgColor
anchors.centerIn: parent
background: Rectangle{
color: Theme.bgColor
}
}
}
2、右键项目并选择"添加新文件",然后在"Qt"一列中选择"JS文件",然后下面是testtheme.js的具体实现:
.pragma library;
var bgColor = "#ff0";
var fgColor = "#f00";
var text = "This is a test";
3、编译运行,ok。上面是一套qss的风格,要是想实现多套风格的,怎么做?在js中模拟实现json的数据结构,这样通过不同的key(qss kind name)来获取具体的Object,然后通过Object来取具体的数值