1 回答

TA貢獻(xiàn)2021條經(jīng)驗(yàn) 獲得超8個(gè)贊
從庫(kù)中復(fù)制代碼在這里會(huì)分散注意力 - 擴(kuò)展小部件是完全可能的,所以我將回答最初的意圖而不是修復(fù)錯(cuò)誤......
您可以通過(guò)將核心小部件嵌入到結(jié)構(gòu)中然后添加或覆蓋功能來(lái)擴(kuò)展它。關(guān)鍵是調(diào)用ExtendBaseWidget,以便內(nèi)部正確注冊(cè)您的覆蓋類(lèi)型。以下代碼顯示了如何創(chuàng)建一個(gè)響應(yīng)右鍵單擊的新按鈕。
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 關(guān)注
- 161 瀏覽
添加回答
舉報(bào)