在Monodevelop中添加GTK#VBox作为现有HBox的父级

时间:2012-09-11 13:31:21

标签: monodevelop gtk#

我正在使用Monodevelop来构建GUI。我已经有一堆嵌套在一个HBox中的小部件,它包含在MainWindow中。但是,现在我发布了我需要添加一个VBox来定位顶部的菜单栏。我的问题是,在MonoDevelop中,我可以将VBox添加为现有HBox的父级吗?

简单地将VBox拖到窗口上没有任何作用,我找不到菜单选项。

2 个答案:

答案 0 :(得分:2)

您可以通过在代码中创建HBox(也可能是VBox)来实现,而不是在图形设计器中。

例如:

VBox vb = new VBox();   // Create a new VBox
vb.Visible = true;      // Make sure it is visible
base.Add (vb);          // Add the VBox to the base top window
base.Move (vb,0,0);     // Make sure the VBox is placed at top-left of the window

HBox hb = new HBox();   // Create a new HBox
hb.Visible = true;      // Make sure it is visible
vb.Add (hb);            // Add the HBox to the VBox (so VBox is the parent)

如果已经在图形设计器中创建了HBox,并且您不希望以这种方式即时重新创建它,那么请相应地调整代码。例如,如果您现有的HBox名称是hb,请执行以下操作:

VBox vb = new VBox();   // Create a new VBox
vb.Visible = true;      // Make sure it is visible
base.Add (vb);          // Add the VBox to the base top window
base.Move (vb,0,0);     // Make sure the VBox is placed at top-left of the window
vb.Add (hb);            // Add the HBox to the VBox (so VBox is the parent)

当然这意味着你必须在代码中将所有菜单项添加到VBox,但这很容易,遵循相同的规则。如果您不确定可以使用哪些成员函数以及如何使用它,只需创建一个新项目,在设计器中设计菜单(使用VBox)并保存。现在检查文件夹 gtk-gui 下的文件,与您的主代码文件同名的文件(放置菜单的位置)将具有您在其中重新创建它所需的确切代码。原创项目

希望有所帮助!

答案 1 :(得分:0)

您可以使用所有控件复制托盘小部件,拖入新托盘并将其粘贴回来。几天前,当我决定在自定义小部件中移动控件时,我不得不这样做。

或者您可以像其他答案一样编码,但我想复制/粘贴速度更快。