在Gtk + -2.14.0中使用GtkMenu

时间:2009-11-13 11:05:03

标签: gtk

我正在构建一个包含GtkMenu小部件的应用程序。我使用Glade RAD工具开发UI,在Glade中创建项目时,我指定了 GTK为2.16 的版本,支持GtkMenu和GtkMenuItems。

所以我在应用程序的任何地方都使用了GtkMenu(用于文件菜单和右键菜单)。

但是我在我的目标平台上尝试了这个应用程序,它安装了GTK + 2.14 不承认GtkMenu或GtkMenuItem。

我现在该怎么办?我需要将GtkMenu与GtkMenuItems一起使用,但我无法升级目标平台以使用GTK + 2.16。

所以问题是:

  1. GTK + 2.14是否支持GtkMenu和GtkImageMenuItem / GtkMenuItems?
  2. 如果不是我们应该使用什么呢?

3 个答案:

答案 0 :(得分:0)

GtkMenu是核心GTK +课程。自从当前系列的第一个版本(2.0)以来,它一直在那里,甚至在GTK + 1.x中。

我认为同样适用于GtkMenuItem;例如,有些东西(如the submenu property)被记录为已添加到2.12中。

不确定您的问题是什么意思;也许你错误地解释了一些错误信息?

更新:看起来GtkImageMenuItem似乎是新的;也许您可以使用普通菜单项来模拟它?

答案 1 :(得分:0)

问题不在于GTK + 2.14不支持GtkMenu和朋友。这就是UI构建基础架构GtkBuilder不支持从XML规范创建它们。不幸的是,我不确定推荐的解决方案是什么/是什么;我自己也在处理同样的问题。

答案 2 :(得分:0)

Gtk 2.14明确支持menuitem,菜单栏等。 您最有可能将用户界面保存为gtkbuilder UI。

GtkBuilder正在接管libglade。不幸的是,gtk2.14中的GtkBuilder还不支持菜单栏和menuitem的构建,即使gtk2.14完全支持菜单栏和菜单项。

你有什么选择?

  1. 保持原样,您的项目在gtk> = 2.16上完全正常运行(gtkbuilder可以在gtk> = 2.16中创建menuitem)

  2. 将您的用户界面保存为glade用户界面,然后您的项目将在gtk 2.14上正常工作。您将需要使用libglade而不是gtkbuilder来加载接口,连接信号等。但是这是一个糟糕的选择,因为libglade会慢慢消失。

  3. 如果在gtk2.14上构建您的应用程序非常重要,那么您将需要在不使用gtkbuilder的情况下构建菜单,而是直接编写代码。 (您需要查看2.14文档,转到http://library.gnome.org/devel/gtk/2.14/GtkMenuBar.html)。

  4. 我会选择3.祝你好运。

    克里斯托弗

相关问题