Go语言 如何制作固定尺寸的标签

qgelzfjb  于 2023-06-27  发布在  Go
关注(0)|答案(2)|浏览(151)

我不明白如何在Fyne中制作固定尺寸的标签。我找不到任何方法

func main() {
    a := app.New()

    w := a.NewWindow("Fyne Demo")
    label1 := widget.NewLabel("Hello Fyne\n\nline\n\nline\n\nline\n\n\n\nline")
    label2 := widget.NewLabel("Text")
    edit1 := widget.NewEntry()
    btn1 := widget.NewButton("Run", func() {
      label1.SetText("Hello World")
    })
    container := container.NewVBox(label1, label2, edit1, btn1)

    w.SetContent(container)
    w.Resize(fyne.NewSize(300,400))
    w.ShowAndRun()
}

点击btn1后,随着文本的改变,它会自动调整大小。如何防止这种情况发生?

vjrehmav

vjrehmav1#

如果您想制作一个固定大小的标签,当文本改变时不会自动调整大小,您可以按照以下步骤操作:
1.将标签 Package 在容器内:这意味着将Label小部件放在另一个容器小部件中。在这种情况下,可以使用container.NewMax()函数创建容器。
1.设置所需的固定大小:创建容器后,可以使用Resize()方法指定所需的容器大小。此尺寸将确定标签的固定尺寸。

func main() {
   a := app.New()
   w := a.NewWindow("Fyne Demo")

   label1 := widget.NewLabel("Hello Fyne\n\nline\n\nline\n\nline\n\n\n\nline")
   label2 := widget.NewLabel("Text")
   edit1 := widget.NewEntry()
   btn1 := widget.NewButton("Run", func() {
       label1.SetText("Hello World")
   })

   label1Container := container.NewFixed(label1)
   label1Container.Resize(fyne.NewSize(200, 100)) 

   content := container.NewVBox(label1Container, label2, edit1, btn1)

   w.SetContent(content)
   w.Resize(fyne.NewSize(300, 400))
   w.ShowAndRun()}

通过将Label Package 在容器中并为容器设置固定大小,可以实现Fyne中具有固定大小的Label的效果。

rsl1atfo

rsl1atfo2#

在与平台无关的工具包中,固定大小的小部件是一个危险的概念,因此我们默认将它们设置为最小大小。这样,它就可以在最小的屏幕上显示。
窗口正在调整大小,因为您的内容对于窗口来说太大了。为了防止这种情况发生,更好的方法是给予小部件更多的空间,这样它就不必强制窗口变大。像Window.Resize这样的东西会要求操作系统提供更多的空间。

相关问题