我在和Fyne申请。
我需要创建一个网格,其中左列将固定,右列将拉伸。通常,左边有菜单,右边有主块(下面是预期的屏幕截图)。
我阅读了文档https://developer.fyne.io/container/grid,但仍然不知道如何实现它。请帮帮我。
package main
import (
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
)
func main() {
application := app.New()
window := application.NewWindow("title")
window.Resize(fyne.NewSize(1920, 1080))
window.ShowAndRun()
}
发布于 2022-03-07 13:05:51
您可以检查Fyne的演示应用程序。
$ go get fyne.io/fyne/v2/cmd/fyne_demo
$ fyne_demo
在您的描述中,有一个示例,其中菜单位于左侧,主块位于右侧:
package main
import (
"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("Fyne Demo")
w.SetMaster()
content := container.NewMax()
title := widget.NewLabel("Component name")
intro := widget.NewLabel("An introduction would probably go\nhere, as well as a")
intro.Wrapping = fyne.TextWrapWord
tutorial := container.NewBorder(
container.NewVBox(title, widget.NewSeparator(), intro), nil, nil, nil, content)
split := container.NewHSplit(makeNav(), tutorial)
split.Offset = 0
w.SetContent(split)
w.Resize(fyne.NewSize(640, 460))
w.ShowAndRun()
}
func makeNav() fyne.CanvasObject {
tree := widget.NewTreeWithStrings(menuItems)
return container.NewBorder(nil, nil, nil, nil, tree)
}
var menuItems = map[string][]string{
"": {"welcome", "collections", "advanced"},
"collections": {"list", "table"},
}
产出:
如果您在go路径源上探索它们的演示,您可以看到(makeNav)的完整功能,它将使事情变得可点击。
并使(左栏将固定,右列将伸展):
split.Offset = 0
发布于 2022-03-07 15:25:41
听起来你在做一个边框布局(附在边上的东西)。如果是这样,则可以将左边设置为最小大小,并通过以下操作将内容扩展为填充:
container.NewBorder(nil, nil, left, nil, content)
(参数为上、下、左、右、中)。如果您希望用户控制拆分,那么按照其他地方和用户container.NewHSplit(left, right)
的建议进行操作。
https://stackoverflow.com/questions/71372971
复制相似问题