【问题标题】:Gnat GPL Gtkada: where did Gtk.Builder.Get_Widget go?Gnat GPL Gtkada:Gtk.Builder.Get_Widget 去哪儿了?
【发布时间】:2013-06-09 21:27:15
【问题描述】:

我正在尝试根据 Internet 上其他地方的示例构建一个简单的 Gtkada UI。 例如this one

示例使用:

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 吗?如果是的话,我还没有成功。

即使documentation 说 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 下载。

非常感谢,

菲尔

【问题讨论】:

    标签: gtk ada


    【解决方案1】:

    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);

    【讨论】:

    • 啊哈。感谢那。我猜文档不是最新的。
    【解决方案2】:

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

    example cited 是对question 关于GtkaAda 源分布中示例中的回归的响应,可以在目录examples/tooltips/tooltips.adb 中找到。该示例在Gtk.Tree_View_Column.Gtk_Tree_View_Column 的实例上调用Get_Widget。该实现绑定到GtkTreeViewColumn 中的gtk_tree_view_column_get_widget

    请注意,“Support for GtkWidget 类型值仍将出现。”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-03
      • 2014-03-15
      • 2015-07-17
      • 2012-10-30
      • 2013-05-23
      • 1970-01-01
      • 2012-03-13
      • 1970-01-01
      相关资源
      最近更新 更多