缺失gtk_menu_popup_at_pointer()

问题描述:

我正在写一个使用Gtk.Menu的Vala的Gtk程序。
当鼠标右键单击时,我需要使用Gtk.Menu.popup_at_pointer()来显示菜单。缺失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 

我应该怎么做才能够使用这种方法吗?

+3

根据[文档](https://developer.gnome.org/gtk3/stable/GtkMenu.html#gtk-menu-popup-at-pointer),该功能是在3.22中引入的(你是在3.18.9)。 –

您的GTK +版本太旧了。

如果您查看该函数的GTK +文档,可以看到它是在GTK + 3.22:https://developer.gnome.org/gtk3/stable/GtkMenu.html#gtk-menu-popup-at-pointer中引入的,而您只安装了3.18。

还要注意,该方法也被声明为不稳定的,这意味着在将来它可能会改变你的应用程序的方式,因此你现在可能更适合寻找替代解决方案。