我是编程新手,我想开发一个应用程序,但我需要在我的应用程序中向用户显示非常大的文本. 我不确定Widget.NewRichTextWithText()是否用于此目的. 这段代码的工作情况与我预期的一样.

package main

import (
    "strings"

    "fyne.io/fyne/v2"
    "fyne.io/fyne/v2/app"
    "fyne.io/fyne/v2/container"
    "fyne.io/fyne/v2/widget"
)

func main() {
    a := app.New()
    
    w := a.NewWindow("Some Practice")
    
    w.Resize(fyne.NewSize(400, 400))
    
    text := widget.NewRichTextWithText((strings.Repeat("this\n", 100)))
    
    c := container.NewMax(container.NewVScroll(text))
    
    w.SetContent(c)
    
    w.ShowAndRun()
}

但这一次不起作用.

package main

import (
    "image/color"
    "strings"

    "fyne.io/fyne/v2"
    "fyne.io/fyne/v2/app"
    "fyne.io/fyne/v2/canvas"
    "fyne.io/fyne/v2/container"
)

func main() {
    a := app.New()
    
    w := a.NewWindow("Some Practice")
    
    w.Resize(fyne.NewSize(400, 400))
    
    text := canvas.NewText(strings.Repeat("this\n", 100), color.White)
    
    c := container.NewMax(container.NewVScroll(text))
    
    w.SetContent(c)
    
    w.ShowAndRun()
}

因为当我运行应用程序时,"\n"显示为无效字符,而不是换行符. 我的目标是显示非常大的文本"从上到下滚动"与画布.NewText(),但"\n"字符不起作用.而不是从上到下滚动显示文本,它是这样打印的吗?

推荐答案

使用widget.Label显示"简单"文本:

text := widget.NewLabel(strings.Repeat("this\n", 100))

请注意,widget.Label可以是"样式"的(例如,您可以将其设置为italicbold).

如果要显示包含具有不同样式和格式的部分(称为段)的文本,则应使用widget.RichText.widget.Label只能作为一个整体来设计.

Go相关问答推荐

如何创建两个连接的io.ReadWriteClosers以用于测试目的

在Golang中,@LATEST和@UPGRADE特殊查询有什么不同?

Go Regexp:匹配完整的单词或子字符串,或者根本不匹配

如何使用我的 struct 化日志(log)记录格式使人panic ?

需要类型[]*structpb.Value(GCP Golang客户端库;aiPlatform)

在GO中使用泛型类型 struct 实现接口方法

Docker 执行失败并显示cmd/ENTRYPOINT 中的命令未找到

如何根据地址和大小打印字符串

我的神经网络(从头开始)训练,让它离目标更远

在本地 go 应用程序上获取秘密的正确策略

如何判断范围内的字段?

如何在 Go 中编写示例测试?

CBC Decrypter 解密加密文本,但部分文本被随机字符替换

Wire google Inject with multi return from provider 函数

为什么 reflect.TypeOf(new(Encoder)).Elem() != reflect.TypeOf(interfaceVariable)?

如何根据 Go 中第二次出现的分隔符拆分字符串?

为什么 Go 被认为是部分抢占式的?

NaN 是 golang 中的可比类型吗?

在 Go 中读取数字行

Dynamodb.ScanInput - 不能使用expr.Names()(类型 map[string]*string)作为类型 map[string]string