2

编辑:单击此处获取代码

所以我正在尝试使用 MonoDevelop(2.4 版)构建界面。我正在尝试习惯“容器中的容器”的 Gtk 概念。我创建了一个带有两个......呃......盒子的vbox,在顶部盒子上放了一个菜单,在底部盒子上放了一个表格。我将表格设置为两列五行。在前四行,我在左边放了一个标签,在右边放了一个条目。在右下角的单元格上,我放了一个按钮。它看起来像这样:

GUIBlah 应用程序

这是我正在努力解决的问题:

1)如何让表格的列不等宽?有趣的是,当我只添加标签并且还没有添加输入框时,左列只占用了标签所需的空间。现在它是 50/50,它不会让步。

2) 如何使标签右对齐,以便文本中的最后一个“:”很好地对齐并靠近输入框?我将标签的“Justify”属性设置为“Right”,似乎被忽略了。

3) “文件”菜单下的“打开”和“关闭”动作的动作代码包括显示带有确定按钮的模态消息框。但是按下 OK 按钮不会关闭消息框,只会关闭消息框窗口。代码是:

(new Gtk.MessageDialog(this, DialogFlags.Modal, MessageType.Info, ButtonsType.Ok,
                  "Open Action")).Show();
4

1 回答 1

4

1) 将至少一个条目小部件设置为水平“扩展”和“填充”。

2) 将标签的 Xalign 属性设置为 1.0。Justify 控制环绕文本的布局,Xalign/Yalign 控制整个块在标签区域内的位置。

3) 你应该在完成后 Destroy() 对话框。或者,您可以 Hide() 它并重新使用它。您还应该考虑使用对话框的 Run() 方法 - 通常类似于:

var dialog = new FooDialog(...);
try {
    dialog.Show();
    var response = (ResponseType) dialog.Run ();
    if (response == ResponseType.Ok) {
        //do stuff
    }
} finally {
    dialog.Destroy ();
}
于 2010-08-30T22:49:12.287 回答