3
Gtk 위젯은 scroll-event이라는 신호를 내 보냅니다. MenuItem에 해당 신호에 함수를 연결하고 싶습니다. 다음 예제 코드는 작동하지 않습니다.메뉴 항목에서 gtk scroll-event를 잡는 법
$ cat scroll-event-on-menu-item.c
#include <gtk/gtk.h>
void scroll_cb(GtkStatusIcon* icon, GdkEvent* ev, gpointer userdata)
{
g_message("scrolled!");
}
void quit_cb(GtkMenuItem* item, GdkEventButton* ev, gpointer userdata)
{
gtk_main_quit();
}
void click_cb(GtkStatusIcon* icon, GdkEventButton* ev, gpointer userdata)
{
GtkWidget* menu = gtk_menu_new();
GtkWidget* item = gtk_image_menu_item_new_from_stock(GTK_STOCK_QUIT, NULL);
gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
gtk_widget_show(menu);
gtk_widget_show(item);
g_signal_connect(item, "button-press-event", G_CALLBACK(quit_cb), NULL);
g_signal_connect(item, "scroll-event", G_CALLBACK(scroll_cb), NULL);
gtk_menu_popup(GTK_MENU(menu), NULL, NULL, gtk_status_icon_position_menu,
icon, ev->button, ev->time);
}
int main(int argc, char *argv[])
{
gtk_init(&argc, &argv);
GtkStatusIcon* icon = gtk_status_icon_new_from_stock(GTK_STOCK_INFO);
g_signal_connect(icon, "button-press-event", G_CALLBACK(click_cb), NULL);
gtk_main();
return 0;
}
$ cat Makefile
CFLAGS := $(shell pkg-config --cflags gtk+-3.0)
LDFLAGS := $(shell pkg-config --libs gtk+-3.0)
scroll-event-on-menu-item:
메뉴 항목에서 스크롤 이벤트를 어떻게 잡을 수 있습니까?
또한 파이썬 이는 'item.add_events (Gdk.EventMask.SCROLL_MASK) '로 이루어진다. –