Golang中处理Entry时遇到的问题

Golang中处理Entry时遇到的问题 如何从 fyne 的 entry 组件中获取文本(字符串)?

以下是一些代码。我想使用输入的字符串。

请帮助我。谢谢。

func ProductKeyFieldCheck() (CheckProductKeyEntry fyne.Widget, text string) {
CheckProductKeyEntry = widget.NewEntry()
CheckProductKeyEntry.SetPlaceHolder("")
CheckProductKeyEntry.Resize(fyne.NewSize(400, 30))
CheckProductKeyEntry.Move(fyne.NewPos(40, 100))
text := CheckProductKeyEntry.SelectedText()
return CheckProductKeyEntry, text

更多关于Golang中处理Entry时遇到的问题的实战教程也可以访问 https://www.itying.com/category-94-b0.html

1 回复

更多关于Golang中处理Entry时遇到的问题的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


在Fyne中,要从Entry组件获取文本,应该使用Text属性而不是SelectedText()方法。SelectedText()只返回用户选中的文本部分,而不是整个输入内容。

以下是修正后的代码示例:

func ProductKeyFieldCheck() (fyne.Widget, string) {
    entry := widget.NewEntry()
    entry.SetPlaceHolder("")
    entry.Resize(fyne.NewSize(400, 30))
    entry.Move(fyne.NewPos(40, 100))
    
    // 获取完整的输入文本
    text := entry.Text
    
    return entry, text
}

如果需要实时获取文本变化,可以绑定到OnChanged回调:

func ProductKeyFieldCheck() fyne.Widget {
    entry := widget.NewEntry()
    entry.SetPlaceHolder("")
    entry.Resize(fyne.NewSize(400, 30))
    entry.Move(fyne.NewPos(40, 100))
    
    // 实时监听文本变化
    entry.OnChanged = func(text string) {
        fmt.Println("当前输入:", text)
        // 在这里处理文本
    }
    
    return entry
}

或者使用数据绑定:

func ProductKeyFieldCheck() (fyne.Widget, binding.String) {
    data := binding.NewString()
    entry := widget.NewEntryWithData(data)
    entry.SetPlaceHolder("")
    entry.Resize(fyne.NewSize(400, 30))
    entry.Move(fyne.NewPos(40, 100))
    
    // 随时获取绑定的值
    text, _ := data.Get()
    
    return entry, data
}
回到顶部