首页 > 解决方案 > 类型安全的 css 对控制 tornadofx 没有影响

问题描述

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

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

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

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

解决方案


代码运行良好,所以我猜你使用的是 TornadoFX IDEA 插件并且不小心运行了 View 而不是运行 App 类。该插件允许您在不定义应用程序类的情况下运行视图,但是当您这样做时,框架无法知道您要加载应用程序类中指定的样式表。改为运行该Subtitler课程,您将看到您的样式已应用:)


推荐阅读