gpt4 book ai didi

go - 导航并添加到TabItem中的内容

转载 作者:行者123 更新时间:2023-12-01 20:27:26 25 4
gpt4 key购买 nike

我有一个特定的问题,也许是不寻常的问题,涉及在Fyne中构建GUI。我的应用程序是选项卡式的;窗口中的第一件事就是TabContainer。将要放置在应用程序中的所有其他小部件在服务器的指导下动态放置,服务器将向下发送指令流,例如“在选项卡2,第4行,第3列,放置Entry小部件”,等等。需要明确的是,该应用程序将使每个TabItem都具有一组垂直Box窗口小部件,每个窗口小部件都将包含一组水平盒。可以将其视为一个参差不齐的网格,在每个选项卡中都不会尝试将列对齐。

我的困惑是:当我从服务器收到指令时,我可能(通常会!)必须扩展TabItem上的VBox和/或所选VBox中的HBox。因此,我想转到TabItem并询问它已经有多少个VBox,然后根据需要添加更多VBox,并为该垂直Box中的水平Box添加同上。但是我不知道该怎么问。

给定选项卡号,不难获得TabItem:tc.Items [tabNumber]可以帮助我,而我可以使用tc.Items [tabNumber] .Content来获得内容。问题是,我知道内容是一个Box,我(通常)想添加到其中。但是编译器没有忍受我的强制转换:

aBox := widget.Box(tc.Items[thing.about.page].Content) //Trust me, it is one. Really.
//and now I can append as needed to this aBox. Except the line above doesn't compile.

编译错误是有道理的;这大概不是一个合理的选择。在C++中,我会采用dynamic_cast并没问题。对Go来说是新手,我不知道该如何管理。

我知道我可以在侧面布置一组 map 以容纳我的盒子;从严格意义上讲,我不需要询问标签容器,因为我可以分别对其进行跟踪。但这感觉不对。我要复制的是费恩(Fyne)已经拥有的知识,只要我知道如何将其挖掘出来。当我从服务器获取开始删除某些小部件的命令时,我将做很多并行工作,同时管理Tab容器和我的 map 。

什么是优雅的解决方案?

最佳答案

您需要改为通过以下方式声明类型:
myBox:= tc.Items [内容页面]。内容。(* widget.Box)

关于go - 导航并添加到TabItem中的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59491885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com