外观
Button(按钮)
ui.Button 创建一个显示标签的按压式按钮,ui.PrimaryButton 创建一个以 强调色显示的按钮,用于窗口或对话框的主要操作。Clicked 会上报一次点击, 或者在按钮拥有键盘焦点时的 Enter 或空格键:
go
ui.Row(c).Gap(8).Justify(ui.End).Children(func() {
if ui.Button(c, "Cancel").Clicked() {
app.editing = false
}
if ui.PrimaryButton(c, "Save").Clicked() {
app.save()
}
})内容
按钮将其子元素按行布局,并让它们继承自己的文字颜色。用 Children 和一个 空标签,可以给它其他内容,比如标签前的图标:
go
ui.PrimaryButton(c, "").Children(func() {
ui.Icon(c, save)
ui.Text(c, "Save").SingleLine()
})只显示图标的按钮需要一个 Label,为辅助技术给它命名,以及一个 Tooltip:
go
if ui.Button(c, "").Label("Delete").Tooltip("Delete").Children(func() { ui.Icon(c, trash) }).Clicked() {
app.delete()
}状态
Disabled(true) 会将按钮置灰:它既不响应点击,也不获得焦点。在 工具栏中,按钮在被悬停之前不显示自己的外观。无论在焦点何处 都由 Enter 触发的默认按钮,用一个快捷键接管该键:
go
if ui.PrimaryButton(c, "Sign in").Clicked() || c.Shortcut(0, ui.KeyEnter) {
app.signIn()
}获得焦点的按钮会自己保留 Enter 和空格,所以只有当焦点在其他地方时,该 快捷键才会触发。
样式
按钮返回它的元素:之后的调用改变它的外观,如 ui.Button(c, "Save").Padding(10, 20).Radius(999)。ui.ButtonBase 是一个 没有外观的按钮,一个可获得焦点并上报 Clicked 的行,用于你自己的设计: 参见自定义控件。
无障碍
辅助技术看到的是一个由其文字或 Label 命名的按钮,它可以像点击一样按下 这个按钮。
点击动作
用 Clicked() 做内联控制流,或用 OnClick 在构建之后运行一个动作:
go
ui.Button(c, "Save").Disabled(app.saving).OnClick(app.save)回调看到的是最终配置,并在绑定值的输入之后运行。它可以更改模型而不打断 正在构建控件的循环。已处理的输入在视图重建之前被消费。如何在查询与回调 之间选择,参见事件与动作。