Я пытаюсь назначить ускоритель элементу меню GTK:
group = gtk_accel_group_new();
item = gtk_image_menu_item_new_from_stock(GTK_STOCK_UNDO, group);
gtk_widget_add_accelerator(item, "activate", group, GDK_Z, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
Но при компиляции получаю следующую ошибку:
./src/main.c:171:55: error: ‘GDK_Z’ undeclared (first use in this function)
gtk_widget_add_accelerator(item, "activate", group, GDK_Z, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
^
Это вывод из pkg-config --cflags gtk+-2.0
:
-pthread -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng12 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng12 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/freetype2
Как я могу сделать идентификатор GDK_Z
доступным для моей программы?
libgtk2.0-dev
)? - person Michi   schedule 03.10.2018sudo apt-get remove libgtk2.0-dev --purge
, а затем переустановилsudo apt-get install libgtk2.0-dev
. Та же проблема.. - person Luke   schedule 03.10.2018guint key = GDK_z;
илиguint key = GDK_Z;
, а затем =››gtk_widget_add_accelerator(item, "activate", group, key, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
? - person Michi   schedule 03.10.2018gtk_widget_add_accelerator
, они говорят, чтоaccel_key
являетсяGDK keyval of the accelerator
, но я не могу найти никаких документов для них. Я взял примерGDK_Z
из популярной в свое время книги по GTK 2. Но там нет ссылки на что-то конкретное. developer.gnome.org/gtk2/stable/ а> - person Luke   schedule 03.10.2018#include <gdk/gdkkeysyms.h>
это так. Если вы добавите это как ответ, я приму его как правильный. - person Luke   schedule 03.10.2018