首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何制作网格/ Fyne / Golang

如何制作网格/ Fyne / Golang
EN

Stack Overflow用户
提问于 2022-03-06 18:08:11
回答 2查看 815关注 0票数 1

我在和Fyne申请。

我需要创建一个网格,其中左列将固定,右列将拉伸。通常,左边有菜单,右边有主块(下面是预期的屏幕截图)。

我阅读了文档https://developer.fyne.io/container/grid,但仍然不知道如何实现它。请帮帮我。

网格

代码语言:javascript
运行
复制
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()
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-07 13:05:51

您可以检查Fyne的演示应用程序。

代码语言:javascript
运行
复制
$ go get fyne.io/fyne/v2/cmd/fyne_demo
$ fyne_demo

在您的描述中,有一个示例,其中菜单位于左侧,主块位于右侧:

代码语言:javascript
运行
复制
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)的完整功能,它将使事情变得可点击。

并使(左栏将固定,右列将伸展):

代码语言:javascript
运行
复制
split.Offset = 0
票数 2
EN

Stack Overflow用户

发布于 2022-03-07 15:25:41

听起来你在做一个边框布局(附在边上的东西)。如果是这样,则可以将左边设置为最小大小,并通过以下操作将内容扩展为填充:

代码语言:javascript
运行
复制
container.NewBorder(nil, nil, left, nil, content)

(参数为上、下、左、右、中)。如果您希望用户控制拆分,那么按照其他地方和用户container.NewHSplit(left, right)的建议进行操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71372971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档