将scss文件编译为有效的qt样式表。

qtsass的Python项目详细描述


qtsas:将scss文件编译为qt样式表

License - MITOpenCollective BackersJoin the chat at https://gitter.im/spyder-ide/public
Travis build statusAppVeyor build statusCodecov coverageScrutinizer Code Quality

版权所有©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及其子项目的资金来源于

QuansightNumfocus

以及通过Open Collective

Sponsors

请考虑成为赞助商!

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何向第二个组合框模型项添加数组值从第一个组合框所选项获取数组名称?   使用Java与WebSphere的SSL握手错误   eclipse线程“main”Java中的第一个Java程序异常。lang.NoClassDefFoundError   java将Javafx应用作为Web应用移植的最佳方式   IDE的java右JVM文件夹   java如何在基本适配器中停止文本到语音   java If block使用substring和equals方法以假值执行   在本例中,如何在java中返回多个值?   java第二个主类在maven构建期间覆盖第一个主类   如何在java中设置运行时ArrayList的泛型类型?   java从主机读取文件