Использование GtkMenu в Gtk + -2.14.0 - PullRequest
0 голосов
/ 13 ноября 2009

Я создаю приложение с виджетом GtkMenu. Я использую инструмент Glade RAD для разработки пользовательского интерфейса и при создании проекта в 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 голосов
/ 11 декабря 2009

Проблема не в том, что GTK + 2.14 не поддерживает GtkMenu и друзей. Дело в том, что инфраструктура построения пользовательского интерфейса, GtkBuilder, не поддерживает создание их из спецификаций XML. К сожалению, я не уверен, что рекомендуемое решение является / было; Я сам имею дело с той же проблемой.

0 голосов
/ 17 декабря 2009

GTK 2.14 определенно поддерживает menu menu, menubar и т. Д. Скорее всего, вы сохраняете свой пользовательский интерфейс как пользовательский интерфейс gtkbuilder.

GtkBuilder захватывает libglade. К сожалению, GtkBuilder в gtk2.14 пока не поддерживает конструирование menubar и menuitem, хотя gtk2.14 полностью поддерживает menubar и menuitem.

Какие у вас варианты?

  1. Оставайтесь без изменений, ваш проект полностью работает на gtk> = 2.16 (gtkbuilder может создать пункт меню в gtk> = 2.16)

  2. Сохраните ваш пользовательский интерфейс как пользовательский интерфейс glade, и тогда ваш проект будет работать нормально на gtk 2.14. Вам нужно будет использовать libglade вместо gtkbuilder для загрузки интерфейса, подключения сигналов и т. Д. Однако это плохой вариант, поскольку libglade будет медленно исчезать.

  3. Если сборка вашего приложения на gtk2.14 действительно важна, то вы захотите создать свое меню без gtkbuilder, но прямо напишите код. (вам нужно будет ознакомиться с документацией 2.14, перейти к http://library.gnome.org/devel/gtk/2.14/GtkMenuBar.html).

Я пойду на вариант 3. Удачи.

Christophe

0 голосов
/ 13 ноября 2009

GtkMenu - основной класс GTK +. Это было там с первой (2.0) версии текущей серии, и было даже в GTK + 1.x.

Я думаю, что то же самое верно для GtkMenuItem; есть вещи (например, свойство подменю ), которые отмечены как добавленные в 2.12, например.

Не уверен, что это говорит о вашей проблеме; возможно, вы неправильно интерпретируете какое-то сообщение об ошибке?

ОБНОВЛЕНИЕ: похоже, GtkImageMenuItem новый; возможно, вы можете эмулировать его, используя простой пункт меню?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...