GTK - установить полноэкранное окно виджета - PullRequest
3 голосов
/ 07 декабря 2011

Я пытался установить окно виджета в полноэкранный режим.

Я попытался получить корневое окно виджета, используя gtk_widget_get_root(_window), а затем gtk_window_fullscreen(), чтобы установить его в полноэкранный режим, но в документации говоритсячто gtk_widget_get_root_window() и gtk_widget_get_parent_window() (что я тоже пытался) возвращают GdkWindow *, а не GtkWindow * при необходимости.

Я попытался привести GdkWindow * к GtkWindow *, но это дает мне эту ошибку:

Gtk-CRITICAL **: IA__gtk_window_fullscreen: утверждение `GTK_IS_WINDOW (window) 'не выполнено

Код будет выглядеть следующим образом:

gtk_window_fullscreen (GTK_WINDOW(gtk_widget_get_root_window (widget)));

Имеютакже заметил, что у виджета есть поле «окно», но это также тип GdkWindow *.

У меня нет виджета окна в функции, где я хочу установить его в полноэкранном режиме ...

1 Ответ

7 голосов
/ 07 декабря 2011

GtkWindow и GdkWindow - это совершенно разные вещи.

Когда мы думаем об «окне», мы обычно имеем в виду графический компонент - верхний, изменяемый размер «прямоугольник» с кнопками минимизации / максимизации и т. Д.Это то, что представляется как GtkWindow.

GDK, однако имеет другое значение для «окна».GdkWindow - это не графический компонент, а абстрактный ресурс внутри GDK, представляющий некоторую прямоугольную область на экране.Вероятно, он тесно связан с каким-либо низкоуровневым ресурсом внутри Xorg / Win32 и т. Д.

Если вы хотите получить верхний уровень GtkWindow, содержащий данный виджет, вы, вероятно, можете использовать gtk_widget_get_toplevel gtk_widget_get_ancestor

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...