1 回答

TA贡献2021条经验 获得超8个赞
从库中复制代码在这里会分散注意力 - 扩展小部件是完全可能的,所以我将回答最初的意图而不是修复错误......
您可以通过将核心小部件嵌入到结构中然后添加或覆盖功能来扩展它。关键是调用ExtendBaseWidget,以便内部正确注册您的覆盖类型。以下代码显示了如何创建一个响应右键单击的新按钮。
package main
import (
"log"
"fyne.io/fyne"
"fyne.io/fyne/app"
"fyne.io/fyne/widget"
)
type myButton struct {
widget.Button
}
func (m *myButton) TappedSecondary(*fyne.PointEvent) {
log.Println("Right Click")
}
func newMyButton(label string, tapped func()) *myButton {
ret := &myButton{}
ret.ExtendBaseWidget(ret)
ret.Text = label
ret.OnTapped = tapped
return ret
}
func main() {
a := app.New()
w := a.NewWindow("Hello")
w.SetContent(widget.NewVBox(
newMyButton("Right tap me", func() {
log.Println("Normal callback")
}),
))
w.ShowAndRun()
}
- 1 回答
- 0 关注
- 138 浏览
添加回答
举报