如何在GTK3中的GtkDrawingArea上更改鼠标光标?

这是从我之前的问题得出的,我试图将鼠标光标设置为在hover在GtkDrawingArea上时交叉发。 我试图将ebassi的答案应用于zetcode的以下代码 。 到目前为止我有:

#include  #include  static void do_drawing(cairo_t *); struct { int count; double coordx[100]; double coordy[100]; } glob; static gboolean on_draw_event(GtkWidget *widget, cairo_t *cr, gpointer user_data) { do_drawing(cr); return FALSE; } static void do_drawing(cairo_t *cr) { cairo_set_source_rgb(cr, 0, 0, 0); cairo_set_line_width(cr, 0.5); int i, j; for (i = 0; i <= glob.count - 1; i++ ) { for (j = 0; j button == 1) { glob.coordx[glob.count] = event->x; glob.coordy[glob.count++] = event->y; } if (event->button == 3) { gtk_widget_queue_draw(widget); } return TRUE; } int main(int argc, char *argv[]) { GtkWidget *window; GtkWidget *darea; glob.count = 0; gtk_init(&argc, &argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); darea = gtk_drawing_area_new(); gtk_container_add(GTK_CONTAINER(window), darea); gtk_widget_set_has_window (GTK_WIDGET (darea), TRUE); int crossing_mask = GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK; gtk_widget_add_events (GTK_WIDGET (darea), crossing_mask); gtk_widget_add_events(window, GDK_BUTTON_PRESS_MASK); g_signal_connect (darea, "enter-notify-event", G_CALLBACK (on_crossing), NULL); g_signal_connect (darea, "leave-notify-event", G_CALLBACK (on_crossing), NULL); g_signal_connect(G_OBJECT(darea), "draw", G_CALLBACK(on_draw_event), NULL); g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL); g_signal_connect(window, "button-press-event", G_CALLBACK(clicked), NULL); gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); gtk_window_set_default_size(GTK_WINDOW(window), 400, 300); gtk_window_set_title(GTK_WINDOW(window), "Lines"); gtk_widget_show_all(window); gtk_main(); return 0; } 

但是,它没有编译,gcc 5.3.0告诉错误:

  undefined reference to `gdk_event_get_event_type' 

我究竟做错了什么?

我正在使用MinGW在Win10机器上工作。 我还没有尝试过在GNU / Linux系统中编译它。

“未定义的引用”表示您使用的是没有gdk_event_get_event_type()的GTK +版本。 该function是在GTK + 3.10中引入的,正如文件规定的那样; 3.10.0于2013年9月发布,因此它意味着您的版本至少比该版本早4年,并且非常不受支持。

最新版本的GTK +是在我写这个答案时,于2017年4月发布的3.22.12 。

请按照GTK +网站上有关如何在Windows上安装GTK +的说明进行操作。