1

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

只需将 VBox 拖到窗口上不会做任何事情,而且我找不到菜单选项。

4

2 回答 2

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下的文件,与您的主代码文件(放置菜单的位置)同名的文件将包含您在原始项目中重新创建它所需的确切代码

希望有帮助!

于 2012-09-12T16:25:07.633 回答
0

您可以复制带有所有控件的托盘小部件,拖入一个新托盘并将它们粘贴回去。几天前,当我决定在自定义小部件中移动控件时,我不得不这样做。

或者您可以像其他答案一样对其进行编码,但我猜复制/粘贴更快。

于 2012-09-24T15:33:36.993 回答