2 回答

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊
標(biāo)簽僅用于顯示,它們不提供用戶交互 - 這是基于 Web 的應(yīng)用程序讓我們感到困惑的事情:)。在 Fyne 應(yīng)用程序中,我們的目標(biāo)是提示所有用戶交互,按鈕和鏈接是交互的,文本不是。有兩種可能的方法:
在您的標(biāo)簽旁邊放置一個(gè)“復(fù)制”按鈕,這已成為許多應(yīng)用程序(例如密碼管理器或 YouTube)的常見(jiàn)做法
使用禁用的條目,以便文本可以交互但不能編輯。

TA貢獻(xiàn)2011條經(jīng)驗(yàn) 獲得超2個(gè)贊
為了補(bǔ)充 andy.xyz 的答案,這是一個(gè)如何使用按鈕將特定內(nèi)容復(fù)制到剪貼板的示例。Fyne 窗口有一個(gè)Clipboard類型,它提供了必要的界面,例如
import (
"time"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/data/binding"
"fyne.io/fyne/v2/layout"
"fyne.io/fyne/v2/theme"
"fyne.io/fyne/v2/widget"
)
func main() {
myApp := app.New()
myWindow := myApp.NewWindow("demo")
txtBound := binding.NewString()
txtWid := widget.NewLabelWithData(txtBound)
bottomBox := container.NewHBox(
layout.NewSpacer(),
widget.NewButtonWithIcon("copy content", theme.ContentCopyIcon(), func() {
if content, err := txtBound.Get(); err == nil {
myWindow.Clipboard().SetContent(content)
}
}),
)
content := container.NewBorder(nil, bottomBox, nil, nil, txtWid)
go func() { // make changing content...
for {
txtBound.Set(time.Now().Format("2006-01-02\n15:04:05\nMST -0700"))
time.Sleep(time.Second)
}
}()
myWindow.SetContent(content)
myWindow.Resize(fyne.NewSize(500, 300))
myWindow.ShowAndRun()
}
在 Windows 10 上,這看起來(lái)像
- 2 回答
- 0 關(guān)注
- 464 瀏覽
添加回答
舉報(bào)