亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Fyne 中特定列表項的按鈕操作

Fyne 中特定列表項的按鈕操作

Go
ITMISS 2022-12-05 16:44:25
我在 GUI 中有一個列表,它有一個簡單的字符串切片作為它的數據源。對于每個列表項,我都創建了一個按鈕,該按鈕應該為該特定列表項執行某些操作。這是一些示例代碼:var data = []string{"folder1", "folder2"}...func someListCreationMethod(data []string) *widget.List {    return widget.NewList(        func() int {            return len(data)        },        func() fyne.CanvasObject {            return container.NewPadded(                widget.NewLabel("Will be replaced"),                widget.NewButton("Do Something", nil),            )        },        func(id widget.ListItemID, item fyne.CanvasObject) {            item.(*fyne.Container).Objects[1].(*widget.Label).SetText(data[id])        },    )}如何將按鈕連接到列表項?我需要一種方法來知道按下了哪個按鈕或按鈕知道它位于哪個列表項(或哪個列表項是他的父項)的方法。有沒有辦法做到這一點?也許widget.NewListWithData()可以解決這個問題,但我不確定這對這種情況是否有幫助。編輯:這是一個更形象的例子來展示這一點(代碼略有不同,但原理與上面的代碼相同):在這種情況下,我想對“pull”按鈕所屬的一個 repo 執行 pull。
查看完整描述

2 回答

?
呼如林

TA貢獻1798條經驗 獲得超3個贊

您可以通過分配來設置按鈕功能Button.OnTapped



查看完整回答
反對 回復 2022-12-05
?
天涯盡頭無女友

TA貢獻1831條經驗 獲得超9個贊

如果人們正在尋找解決方案,我只想提供一些示例代碼。


func someListCreationMethod(data []string) *widget.List {

    return widget.NewList(

        func() int {

            return len(data)

        },

        func() fyne.CanvasObject {

            return container.NewPadded(

                widget.NewLabel("Will be replaced"),

                widget.NewButton("Do Something", nil),

            )

        },

        func(id widget.ListItemID, item fyne.CanvasObject) {

            item.(*fyne.Container).Objects[0].(*widget.Label).SetText(data[id])


            // new part

            item.(*fyne.Container).Objects[1].(*widget.Button).OnTapped = func() {

                fmt.Println("I am button " + data[id])

            }

        },


    )

}


查看完整回答
反對 回復 2022-12-05
  • 2 回答
  • 0 關注
  • 193 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號