如何在 giu imgui 库中创建树形网格?

Posted

技术标签:

【中文标题】如何在 giu imgui 库中创建树形网格?【英文标题】:How to create tree grid in giu imgui library? 【发布时间】:2021-05-25 08:13:44 【问题描述】:

我正在使用giu,这是 imgui 的 Golang 端口,

我需要这样的树形网格:

图片可以在imgui找到,但是我在仓库中没有找到实现,我试过这个:

package main

import (
    "github.com/AllenDang/giu"
    "github.com/AllenDang/imgui-go"
)

func loop() 
    row1 := giu.TableRow(
        giu.TreeNode(`parent`).Layout(
            giu.TableRow(
                giu.TreeNode(`child`),
                giu.Label(`ch1`),
                giu.Label(`ch2`),
            ),
        ),
        giu.Label(`p1`),
        giu.Label(`p2`),
    )

    giu.SingleWindow(`win`).Layout(
        giu.Table(`table`).Columns(
            giu.TableColumn(`Column_1`),
            giu.TableColumn(`Column_2`),
            giu.TableColumn(`Column_3`),
        ).Rows(row1),
    )


func main() 
    wnd := giu.NewMasterWindow("app", 400, 300, 0)
    imgui.StyleColorsLight()
    wnd.Run(loop)

但它看起来像:

如何解决?

【问题讨论】:

【参考方案1】:

我不知道这是否有帮助,但如果你重新排序元素,它会像你想要的那样工作。

package main

import (
    "github.com/AllenDang/giu"
    "github.com/AllenDang/imgui-go"
)

func loop() 
    row1 := giu.TableRow(
        giu.Label(`p1`),
        giu.Label(`p2`),
        giu.TreeNode(`parent`).Layout(
            giu.TableRow(
                giu.Label(`ch1`),
                giu.Label(`ch2`),
                giu.TreeNode(`child`),
            ),
        ),
    )

    giu.SingleWindow(`win`).Layout(
        giu.Table(`table`).Columns(
            giu.TableColumn(`Column_1`),
            giu.TableColumn(`Column_2`),
            giu.TableColumn(`Column_3`),
        ).Rows(row1),
    )


func main() 
    wnd := giu.NewMasterWindow("app", 400, 300, 0, nil)
    imgui.StyleColorsLight()
    wnd.Run(loop)

【讨论】:

看起来很奇怪,但想法很有趣。

以上是关于如何在 giu imgui 库中创建树形网格?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 react.js 中创建动态网格?

如何在 tkinter 中创建一个自调整大小的按钮网格?

如何在 UITableView 单元格中创建自定尺寸网格?

如何在 Angular 中创建像 Facebook 帖子这样的照片网格?

如何在 Kendo UI 网格中创建自定义删除/销毁按钮/命令?

如何在多维数组/网格c ++中创建List