Я недавно попробовал свои силы в изучении GTK, используя «Основы разработки GTK +» Эндрю Краузе (это самая последняя книга 2007 года по GTK, которую я смог найти).До сих пор около половины программ компилируются и запускаются напрямую, а другая половина устарела, и я могу найти замену с небольшим поиском.Я пользуюсь некоторыми онлайн-уроками, но в них нет подробного объяснения, которое есть в книге мистера Краузе.
В идеальном мире я хотел бы иметь современную книгу, чтобы учиться, но этонедоступен.Таким образом, мне приходится переходить туда-сюда между книгой (GTK2) и онлайн-источниками (GTK3).
Мой вопрос: когда я пытаюсь скомпилировать исходный код из книги, я получаю несколько ошибок.Мне удалось обновить весь код, за исключением проблемы, которую я назвал в названии, которую я не могу преодолеть.
Из книги, окна событий главы 3, эта строка - та, с которой у меня возникают проблемы:
gdk_window_set_cursor (eventbox->window, gdk_cursor_new (GDK_HAND1));
Мне удалось изменить его, чтобы он работал до этого момента, но все равно получаю ошибку при компиляции:
gdk_window_set_cursor (eventbox->window, gdk_cursor_new_for_display (gdk_display_get_default(), GDK_HAND1));
При компиляции я получаю:
eventboxes.c:37:33: error: ‘GtkWidget {aka struct _GtkWidget}’ has no member named ‘window’
gdk_window_set_cursor (eventbox->window, gdk_cursor_new_for_display (gdk_display_get_default(), GDK_HAND1));
Прочитав некоторые другие элементы в Интернете, такие как этот ", используя cairo с gtk3 "
Я обнаружил, что изменения между GTK2 и GTK3 сделали членов, таких как window,недоступен.
Извините за длинное сообщение по моему вопросу: есть ли способ в GTK3 заставить строку кода работать, или я просто выполняю поручение дурака и должен позволить этому умереть?