我正在使用Monodevelop来构建GUI。我已经有一堆嵌套在一个HBox中的小部件,它包含在MainWindow中。但是,现在我发布了我需要添加一个VBox来定位顶部的菜单栏。我的问题是,在MonoDevelop中,我可以将VBox添加为现有HBox的父级吗?
简单地将VBox拖到窗口上没有任何作用,我找不到菜单选项。
答案 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)
您可以使用所有控件复制托盘小部件,拖入新托盘并将其粘贴回来。几天前,当我决定在自定义小部件中移动控件时,我不得不这样做。
或者您可以像其他答案一样编码,但我想复制/粘贴速度更快。