【问题标题】:TornadoFX: Type-Safe CSS with other librariesTornadoFX:类型安全的 CSS 与其他库
【发布时间】:2017-05-20 20:23:22
【问题描述】:

我是 Kolin 和 TornadoFX 的新手,目前正在试验它的一些功能。 我想使用JFoenix-Library 并使用 TornadoFX 的类型安全 CSS 功能设置其控件的样式。但是我不知道如何根据 JFoenix 控件的 CSS 类修改样式。

例如,JFXDecorator 具有默认 CSS 类 jfx-decorator。要更改标题栏的背景颜色,我必须修改 jfx-decorator-buttons-container 类。如何使用 TornadoFX 做到这一点?在 .css 文件中,我会使用

.jfx-decorator-buttons-container {
  -fx-background-color: red;
}

TornadoFX 可以做到这一点吗?

【问题讨论】:

    标签: css javafx kotlin tornadofx


    【解决方案1】:

    您提到了 jfx-decoratorjfx-decorator-buttons-container 类,但您的示例 CSS 使用了 jfx-decorator-buttonscontainer 类。我不确定您真正想要哪些类,但我会添加后者,因为这会从您的示例中生成 CSS。

    class Styles : Stylesheet() {
        companion object {
            val jfxDecoratorButtons by cssclass()
            val container by cssclass()
        }
    
        init {
            jfxDecoratorButtons and container {
                backgroundColor += Color.RED
            }
        }
    }
    

    更新:您更改了问题中的代码,因此这里是生成该输出的更新版本:

    class Styles : Stylesheet() {
        companion object {
            val jfxDecoratorButtonsContainer by cssclass()
        }
    
        init {
            jfxDecoratorButtonsContainer {
                backgroundColor += Color.RED
            }
        }
    }
    

    骆驼大小写选择器会自动转换为带有连字符的小写。您还可以在 cssclass 委托函数中指定确切的名称:

    val myCssClass by cssclass("my-slightly-different-css-class")

    还要注意,由于backgroundColor 属性接受多个值,因此您必须使用+= 将颜色“添加”到颜色列表中。这是所有接受多个值的属性的通用模式。

    【讨论】:

    • 对不起,我的错,我打错了。这是jfx-decorator-buttons-container,一个班级。
    • 谢谢,这就是解决方案!我在指南中找不到此信息,也许我错过了。
    • 不客气 :) 指南的 CSS 章节提到了这一点,但它还不是对类型安全 CSS 支持的完整参考。我们计划在短期内扩展这一章。 edvin.gitbooks.io/tornadofx-guide/content/6.%20CSS.html
    猜你喜欢
    • 2012-10-31
    • 2021-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多