Как получить окно gdk для окна gtk в C?

Я пытаюсь установить курсор на часы. Проблема в том, что gdk_set_cursor() требует gdk_window. Как я могу получить gdk_window gtk_window в C? Я видел примеры для gtkmm и pygtk, но я не могу найти соответствующую функцию C.

2 ответа

Решение
GdkWindow *gdk_window = gtk_widget_get_window(GTK_WIDGET(gtk_window));

или, предварительно GTK 2.14, но теперь запрещено:

GdkWindow *gdk_window = gtk_window->window;

В моем случае gdk_window_set_cursor не работал, потому что gtk_widget_get_window возвращал недопустимый дескриптор, поскольку он еще не был реализован. Перемещение этих строк после того, как окно стало видимым, решило это для меня.

Из документов:

... Например, виджет->окно будет создан при реализации виджета. Обычно реализация происходит неявно; если показать виджет и все его родительские контейнеры, то виджет будет реализован и...

Другие вопросы по тегам