类型安全 css 对控制 tornadofx 没有影响

Type-safe css having no effect on controls tornadofx

我正在尝试遵循类型安全指南 css。内联样式有效,但我似乎可以让它与单独的样式表一起使用 class。我已经尝试了我程序中的每种类型的控件,包括列表视图、按钮、标签和文本字段。根本没有应用任何样式。我的按钮看起来像一个完全正常的按钮,带有 none 的边框或旋转。

我将我的程序精简为只有一个按钮和样式表中指南中的确切代码 class。

我的主视图、样式表和应用程序。

import tornadofx.*
import com.lordxarus.subtitler.app.MyStyles

class MainView : View("Subtitler!") {
    override val root = vbox {
        button("TEST") {
            addClass(MyStyles.tackyButton)
        }
    }
}
class MyStyles : Stylesheet() {

    companion object {
        val tackyButton by cssclass()

        private val topColor = Color.RED
        private val rightColor = Color.DARKGREEN
        private val leftColor = Color.ORANGE
        private val bottomColor = Color.PURPLE
    }


    init {
        tackyButton {
            rotate = 10.deg
            borderColor += box(topColor,rightColor,bottomColor,leftColor)
            fontFamily = "Comic Sans MS"
            fontSize = 20.px
        }
    }
}
class Subtitler: App(MainView::class, MyStyles::class) 

代码运行良好,所以我的猜测是您使用的是 TornadoFX IDEA 插件,不小心 运行 视图而不是 运行 应用程序 class。该插件允许您 运行 视图,甚至无需定义应用程序 class,但是当您这样做时,框架无法知道您想要加载应用程序中指定的样式表 class . 运行 Subtitler class 代替,您会看到应用了您的样式:)