我正在嘗試擴(kuò)展 fyne 小部件以具有帶背景的簡(jiǎn)單可點(diǎn)擊內(nèi)容。我搜索了 fyne 小部件以找到一個(gè)可以用作入門(mén)的示例,并在 List/ListItem 中找到了類(lèi)似的東西。我基本上復(fù)制了列表項(xiàng)代碼并稍微調(diào)整了一下。它看起來(lái)確實(shí)類(lèi)似于fyne 文檔中的簡(jiǎn)單示例。但是由于某些未知原因,go 給了我一個(gè)錯(cuò)誤,我不知道原因是什么,也不知道如何解決:custom_widget/simple_card.go:80:24: c.card.super undefined (type *SimpleCard has no field or method super)這是模塊的代碼(custom_widget/simple_card.go):package custom_widgetimport ( "fyne.io/fyne/v2" "fyne.io/fyne/v2/canvas" "fyne.io/fyne/v2/theme" "fyne.io/fyne/v2/widget" "log")// Declare conformity with interfaces.var _ fyne.Widget = (*SimpleCard)(nil)var _ fyne.Tappable = (*SimpleCard)(nil)type SimpleCard struct { widget.BaseWidget onTapped func() background *canvas.Rectangle content fyne.CanvasObject selected bool}func NewSimpleCard(content fyne.CanvasObject, tapped func()) *SimpleCard { card := &SimpleCard{onTapped: tapped, content: content} card.ExtendBaseWidget(card) return card}// CreateRenderer is a private method to Fyne which links this custom_widget to its renderer.func (c *SimpleCard) CreateRenderer() fyne.WidgetRenderer { c.ExtendBaseWidget(c) c.background = canvas.NewRectangle(theme.SelectionColor()) c.background.Hide() objects := []fyne.CanvasObject{c.background, c.content} // NewBaseRenderer and BaseRenderer are copied from // https://github.com/fyne-io/fyne/blob/master/internal/widget/base_renderer.go // because the functionality is marked internal in fyne !? return &SimpleCardRenderer{NewBaseRenderer(objects), c}}func (c *SimpleCard) Tapped(_ *fyne.PointEvent) { log.Println("I have been tapped") if c.onTapped != nil { c.selected = true c.Refresh() c.onTapped() }}// Declare conformity with the WidgetRenderer interface.var _ fyne.WidgetRenderer = (*SimpleCardRenderer)(nil)type SimpleCardRenderer struct { BaseRenderer card *SimpleCard}
1 回答

UYOU
TA貢獻(xiàn)1878條經(jīng)驗(yàn) 獲得超4個(gè)贊
刪除您創(chuàng)建的所有渲染器類(lèi)型并在CreateRenderer
剛剛的 return中widget.NewSimpleRenderer(container .NewMax(c.background, c.content))
。它比你想象的要簡(jiǎn)單。
從主要小部件中復(fù)制代碼通常不是最好的方法,因?yàn)槲覀冇锌旖莘绞胶?或必須支持比您自己的小部件更多的功能。
- 1 回答
- 0 關(guān)注
- 118 瀏覽
添加回答
舉報(bào)
0/150
提交
取消