GTK - 全屏设置小部件的窗口

PAL*_*LEN 3 c gtk

我一直在尝试将小部件的窗口设置为全屏.

我尝试使用窗口小部件的根窗口,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(窗口)'失败

代码如下所示:

gtk_window_fullscreen (GTK_WINDOW(gtk_widget_get_root_window (widget)));
Run Code Online (Sandbox Code Playgroud)

我还注意到一个小部件有一个字段"窗口",但它也是GdkWindow*类型.

我在功能中没有窗口小部件,我想将其设置为全屏...

ghi*_*hik 7

GtkWindow并且GdkWindow完全不同.

当我们考虑"窗口"时,我们通常意味着一个图形组件 - 带有最小化/最大化按钮等的顶层,可调整大小的"框".这就是所代表的GtkWindow.

然而,GDK对于"窗口"具有另一种含义.在GdkWindow不是图形组件,但内部GDK抽象资源代表屏幕上的一些矩形区域.它可能与Xorg/Win32等内部的一些低级资源密切相关.

如果要获取GtkWindow包含给定窗口小部件的顶层,可以使用gtk_widget_get_toplevelgtk_widget_get_ancestor