我一直在尝试将小部件的窗口设置为全屏.
我尝试使用窗口小部件的根窗口,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*类型.
我在功能中没有窗口小部件,我想将其设置为全屏...
GtkWindow并且GdkWindow完全不同.
当我们考虑"窗口"时,我们通常意味着一个图形组件 - 带有最小化/最大化按钮等的顶层,可调整大小的"框".这就是所代表的GtkWindow.
然而,GDK对于"窗口"具有另一种含义.在GdkWindow不是图形组件,但内部GDK抽象资源代表屏幕上的一些矩形区域.它可能与Xorg/Win32等内部的一些低级资源密切相关.
如果要获取GtkWindow包含给定窗口小部件的顶层,可以使用gtk_widget_get_toplevel或gtk_widget_get_ancestor