将scss文件编译为有效的qt样式表。
qtsass的Python项目详细描述
qtsas:将scss文件编译为qt样式表
版权所有©2015 Yann Lanthony
版权所有©2017–2018 Spyder项目贡献者
概述
SASS为css带来了无数令人惊叹的特性。 除了在web开发中使用,css也是设计基于qt的桌面应用程序的方式。 然而,qt的css有一些变体,这些变体阻止了sass编译器的直接使用。
这个工具的目的是通过处理这些变化来填补sass和qt css之间的空白。
qt的css特性
qtsas的目标是能够基于100%有效的sass文件生成qt css样式表。 这就是它如何处理qt的细节,以及如何修改css样式表以使用qtsas。
“!”在选择器中
qt允许根据窗口小部件的状态定义其样式,如下所示:
QLineEdit:enabled{...}
但是,“not”状态是有问题的,因为它在选择器的名称中引入了一个感叹号,这是无效的sass/css:
QLineEdit:!editable{...}
qtsas允许“!”在选择器的名称中,sass文件被预处理,任何出现的:!
都被:_qnot_
替换(对于“qt not”)。
但是,使用此功能会阻止拥有100%有效的sass文件,因此将来对!
的支持可能会改变。
这可以由直接使用sass文件中的_qnot_
关键字来代替:
QLineEdit:_qnot_editable{/* will generate QLineEdit:!editable { */...}
qline参数
qlineargradient函数还有一个无效的css语法。
qlineargradient(x1:0,y1:0,x2:0,y2:1,stop:0.1blue,stop:0.8green)
为了支持qlineargradient,qtsas提供了qlineargradient函数的预处理器和sass实现。上述qss语法将替换为以下内容:
qlineargradient(0,0,0,1,(0.1blue,0.8green))
您也可以直接在qtsas中使用此语法。
qlineargradient(0, 0, 0, 1, (0.1 blue, 0.8 green))
# the stops parameter is a list, so you can also use variables:
$stops = 0.1 blue, 0.8 green
qlineargradient(0, 0, 0, 0, $stops)
qrgba
qt的rgba:
rgba(255,128,128,50%)
替换为css rgba:
rgba(255,128,128,0.5)
可执行的用法
要将sass样式表编译为qt兼容的css文件:
# If -o is omitted, output will be printed to console
qtsass style.scss -o style.css
要使用监视模式并在每次保存文件时自动重新编译样式表:
# If -o is omitted, output will be print to console
qtsass style.scss -o style.css -w
将包含sass样式表的目录编译为qt兼容的css文件:
qtsass ./static/scss -o ./static/css
也可以使用监视模式监视整个目录的更改。
qtsass ./static/scss -o ./static/css -w
API方法
compile(string, **kwargs)
将qtsas源代码整合并编译成css。
此函数在将qtsas传递给 编译。您提供的任何关键字参数都将与 qtsas的默认关键字参数并传递给sass.compile。
示例:
>>> import qtsass >>> qtsass.compile("QWidget {background: rgb(0, 0, 0);}") QWidget {background:black;}
参数:
- 字符串:qtsas源代码以符合和编译。
- kwargs:传递给sass.compile的关键字参数
返回:
- 符合qt的css字符串
compile_filename(input_file, dest_file, **kwargs)
:
编译qtsas文件并将其保存为qt兼容的css。
示例:
>>> import qtsass >>> qtsass.compile_filename('dummy.scss', 'dummy.css')
参数:
- 输入文件:qtsas文件的路径。
- dest_file:目标qt兼容css文件的路径。
- kwargs:传递给sass.compile的关键字参数
compile_filename(input_file, output_file, **kwargs)
:
编译qtsas文件并将其保存为qt兼容的css。
示例:
>>> import qtsass >>> qtsass.compile_filename('dummy.scss', 'dummy.css')
参数:
- 输入文件:qtsas文件的路径。
- 输出文件:写入qt兼容css的路径。
- kwargs:传递给sass.compile的关键字参数
compile_dirname(input_dir, output_dir, **kwargs)
:
编译包含子目录的目录中的qtsas文件。
>>> import qtsass >>> qtsass.compile_dirname("./scss", "./css")
参数:
- input_dir:包含qtsas文件的目录的路径。
- output_dir:将编译的qt兼容css文件写入的目录。
- kwargs:传递给sass.compile的关键字参数
监视(源,目标,编译器=无,递归=真):
监视源文件或目录,修改时编译qtsas文件。
编译器函数默认情况下,当源是文件时编译文件名 当源是目录时编译目录名。
参数:
- source:源qtsas文件或目录的路径。
- 目标:输出css文件或目录的路径。
- 编译器:编译函数(可选)
- 递归:如果为true,则监视子目录(默认值:true)。
返回:
- watchdog.observer
贡献
欢迎大家贡献!
赞助商
Spyder及其子项目的资金来源于
以及通过Open Collective:
请考虑成为赞助商!