1

我正在尝试从 Internet 上其他地方的示例构建一个简单的 Gtkada UI。比如这个

示例使用:

Gtk.Widget.Show_All (Get_Widget (Builder, "main_window"));

这似乎很合理,但我找不到 Get_Widget。上面引用的示例的作者说“最终在过程主体中使用 Gtk.Builder.Get_Widget”。但是 Get_Widget 不在 Gtk.Builder 中。我能找到的唯一 Get_Widget 不适用于 Gtkada.Builder.Gtkada_Builder 对象。最相关的似乎是在 Gtk.UI_Manager;那是正确的 Get_Widget 吗?我还没有设法使它工作,如果是的话。

甚至文档都说 Gtk.Builder 包含一个函数 Get_Widget。我的问题是,我在哪里可以找到合适的 Get_Widget,或者没有,我怎样才能得到一个 Gtk_Widget_Record 给 Gtk.Widget.Show_All。还是我完全错过了重点?

我的 Gtkada 来自 gtkada-gpl-3.4.2-src.tgz,于 2013 年 6 月 5 日从 libre.adacore.com 下载。

非常感谢,

菲尔

4

2 回答 2

2

GtkAda 2013 使用 Gtk3 而不是 Gtk2,导致以下变化:

  1. Get_Widget 被 Get_Object 取代: Show_All (Gtk_Widget (Gtkada.Builder.Get_Object (Builder, "fenetre")));
  2. Add_From_File 配置文件更改为函数:Retval := Add_From_File (Builder, GladeFileName, Error'Access);
于 2013-06-10T17:07:30.047 回答
1

的实现Get_Widget通常返回特定的Gtk.Widget.Gtk_Widget_Record(或access类型的值) 。Gtk.Widget.Gtk_WidgetGtk.Widget

引用的示例是对有关源代码分发示例中的回归问题GtkaAda的回答,该示例可在目录中找到examples/tooltips/tooltips.adbGet_Widget该示例调用Gtk.Tree_View_Column.Gtk_Tree_View_Column. 实现绑定到gtk_tree_view_column_get_widgetin GtkTreeViewColumn

请注意,“对类型值的支持仍未到来。”GtkWidget

于 2013-06-10T02:20:35.990 回答