tornadoFX togglebutton没有文本属性
我是kotlin和tornadoFX的新手。 在TornadoFX指南中,可以使用以下方法构建ToggleButton:
togglebutton("OFF").action { text = if (isSelected) "ON" else "OFF" }
但是,当我将相同的代码复制到我的IDE,这是错的!
似乎tornadoFX中的togglebutton中没有文本属性?
看来我们有点急于用新的.action
语法来更新指南,所以指南中的例子实际上是错误的。 正确的代码是:
togglebutton("OFF") { action { text = if (isSelected) "ON" else "OFF" } }
指南中的例子是错误的,因为当你调用togglebutton("OFF").action { .. }
, this
action {}
里面的内容实际上是周围的容器,而不是按钮。
对于不在按钮本身上操作的操作,简短的语法没有问题,但是如果您需要操作按钮,则需要使用完整的语法,以便您的代码在按钮上下文中执行。
在另一个说明中,创建一个字符串绑定来表示按钮状态,而不是在动作回调中手动更新它可能更习惯于:
togglebutton { val stateText = selectedProperty().stringBinding { if (it == true) "ON" else "OFF" } textProperty().bind(stateText) }