簡體   English   中英

GTK + 3和Glade:在運行時(C#)將小部件添加到側欄

[英]GTK+ 3 and Glade: Add widgets to sidebar at runtime (C#)

我一直在使用GTK和Glade開發跨平台程序,因為我曾經只為Windows應用程序創建程序。 這個問題涉及小部件(我相信這就是它們的名稱)以及如何將它們“添加”到主窗口。 最好用圖像來解釋。

我有一個主窗口是這樣的:

主視窗

您可以看到右側有意留為空白。 這是因為它將具有動態內容,例如玩家信息,小地圖,庫存等。這是我想包含在右側的小部件之一:

玩家資料

它主要僅包含將要添加的基本信息。 忽略整個主窗口,只關注正確的部分,在編碼中我希望它顯示如下內容:

最后的右側欄

問題是,我不完全了解這是否真的可以做到,或者我應該實際上直接將右側欄編碼到客戶端中。或者從頭開始動態編碼* IE Crete標簽/等在運行時,而不是在此PlayerInfo窗口。

我很好奇什么功能可以做到這一點,以及是否有人可以指出正確的方向來理解這一點。 對於這應該如何工作,我可能完全錯了。

我假設您需要在創建時使用C#編碼添加小部件。

如果我對問題的理解不正確,則可以考慮直接在林間空地中構建界面時使用標簽,將其“空白”或在開始時忽略該數字(與其他所有小部件一樣在創建時進行構建/連接)確保它會在您的窗口內),然后使用指令對文本(整個文本或僅Caratheristics的值)進行動態更新

set_label(請參閱此處 ),例如我用python(自身是處理程序)編寫的

self.my_label_widget.set_label("STR: 26")

我正在使用Python工作,無法給您C代碼,但我認為基本思想是相同的。

我才意識到

Widget newWidget = new Widget(builder.GetObject("PlayerInfo").Handle); 
Box test = builder.GetObject("boxDropDown");
test.Add(newWidget);

通常是正確的,但是在林間空地中,我沒有將其定義為窗口,實際上我可以將其單獨的小部件作為框,網格等顯示出來。 因此,此代碼確實有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM