我正在使用 Monodevelop 来构建 GUI。我已经有一堆小部件嵌套在 MainWindow 中的 HBox 中。但是,现在我发布我需要添加一个 VBox 来将菜单栏定位在顶部。我的问题是,如何在 MonoDevelop 中将 VBox 添加为现有 HBox 的父级?
只需将 VBox 拖到窗口上不会做任何事情,而且我找不到菜单选项。
我正在使用 Monodevelop 来构建 GUI。我已经有一堆小部件嵌套在 MainWindow 中的 HBox 中。但是,现在我发布我需要添加一个 VBox 来将菜单栏定位在顶部。我的问题是,如何在 MonoDevelop 中将 VBox 添加为现有 HBox 的父级?
只需将 VBox 拖到窗口上不会做任何事情,而且我找不到菜单选项。
您可以通过在代码中创建 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下的文件,与您的主代码文件(放置菜单的位置)同名的文件将包含您在原始项目中重新创建它所需的确切代码
希望有帮助!
您可以复制带有所有控件的托盘小部件,拖入一个新托盘并将它们粘贴回去。几天前,当我决定在自定义小部件中移动控件时,我不得不这样做。
或者您可以像其他答案一样对其进行编码,但我猜复制/粘贴更快。