亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

導航并添加到 TabItem 中的內容

導航并添加到 TabItem 中的內容

Go
POPMUISE 2023-08-14 16:45:27
我有一個特定且可能不尋常的問題,涉及在 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 到達內容。問題是,我知道內容是一個盒子,我(通常)想添加到它。但編譯器無法忍受我的強制轉換嘗試: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 新手,我不知道如何管理同等內容。我知道我可以在側面放置一組地圖來放置我的盒子;嚴格來說,我不需要詢問選項卡容器它們包含什么,因為我可以單獨跟蹤它們。但這感覺不對;我正在復制費恩已經擁有的知識,如果我知道如何挖掘它就好了。當我從服務器收到開始刪除某些小部件的命令時,我將進行大量并行工作,管理選項卡容器和我的地圖。優雅的解決方案是什么?
查看完整描述

1 回答

?
手掌心

TA貢獻1942條經驗 獲得超3個贊

您需要以這種方式斷言類型: myBox := tc.Items[thing.about.page].Content.(*widget.Box)



查看完整回答
反對 回復 2023-08-14
  • 1 回答
  • 0 關注
  • 175 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號