我一直在使用GTK和Glade开发一个跨平台程序,因为我已经习惯了只为Windows应用程序创建。这个问题涉及小部件(我相信这就是他们所谓的)以及如何将它们“添加”到主窗口中。用图像也可以更好地解释。
我有一个主窗口,就像这样:
您可以看到右侧有意留空。这是因为它将拥有动态内容,如玩家信息,小地图,库存等。这是我想要包含在右侧的小部件之一:
它主要只包含将要添加的基本信息。忽略整个主窗口,只关注正确的部分,在编码中我希望它显示如下:
问题是,我不完全理解这是否实际上是如何做到的,或者我实际上应该将右侧栏直接编码到客户端中。或者从头开始动态编码* I.E。在运行时克服标签/ etc而不是此PlayerInfo窗口。
我很想知道哪些功能可以做到这一点,如果有人可以指出我正确的方向来理解这一点。我应该如何工作可能完全错了。
我假设您需要在创建时添加带有C#编码的小部件。
答案 0 :(得分:1)
如果我没有正确地解决你的问题,你可以考虑在林间空地直接建立你的界面时停止标签,让它"空白"或者在开始时使用数字(在创建时将其创建/连接为所有其他小部件,以确保它将在您的窗口内)然后以动态方式更新文本(整个文本或仅限于caratheristics的值)与指示
set_label(见here) 例如我在python中编写(self。是处理程序)
self.my_label_widget.set_label("STR: 26")
我在Python工作,我不能给你一个C代码,但我认为基本的想法是一样的。
答案 1 :(得分:1)
我刚才意识到了
Widget newWidget = new Widget(builder.GetObject("PlayerInfo").Handle);
Box test = builder.GetObject("boxDropDown");
test.Add(newWidget);
一般来说是正确的,但是在林间空间我没有将它定义为一个窗口,我实际上可以有一个单独的小部件作为一个盒子,网格等等并让它显示出来。所以这段代码确实有效。