Отсутствует gtk_menu_popup_at_pointer()
Я пишу программу Gtk в Вала, которая использует Gtk.Menu
,
Мне нужно использовать Gtk.Menu.popup_at_pointer()
отображать меню при нажатии правой кнопки мыши.
При компиляции (с --pkg gtk+-3.0
), GCC выдает мне ошибку: warning: implicit declaration of function ‘gtk_menu_popup_at_pointer’ [-Wimplicit-function-declaration]
Метод существует в /usr/share/vala-0.34/vapi/gtk+-3.0.vapi
, но отсутствует в /usr/include/gtk-3.0/gtk/gtkmenu.h
,
Вот версии соответствующих пакетов в моей системе:
$ dpkg -s libgtk-3-dev | grep '^Version:'
Version: 3.18.9-1ubuntu3.1
$ dpkg -s valac | grep '^Version:'
Version: 0.34.4-0ubuntu1~16.04~valateam1
$ dpkg -s libglib2.0-0 | grep '^Version:'
Version: 2.48.2-0elementary0.4.1
Что я должен сделать, чтобы использовать этот метод?
1 ответ
Ваша версия GTK+ слишком старая.
Если вы посмотрите документы GTK+ для этой функции, вы увидите, что она была представлена в GTK+ 3.22: https://developer.gnome.org/gtk3/stable/GtkMenu.html, тогда как у вас установлено только 3.18.
Также обратите внимание, что метод также объявлен как нестабильный, что означает, что в будущем он может измениться таким образом, что нарушит работу вашего приложения, и, следовательно, вам, вероятно, лучше в любом случае найти альтернативное решение.