我一直在尝试将小部件的窗口设置为全屏。
我尝试使用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)));
我还注意到一个小部件有一个字段“窗口”,但它也是GdkWindow *类型。
我想在全屏设置它的功能中没有窗口小部件......
答案 0 :(得分:7)
GtkWindow
和GdkWindow
完全不同。
当我们考虑“窗口”时,我们通常意味着一个图形组件 - 带有最小化/最大化按钮等的顶层,可调整大小的“框”。这是由GtkWindow
表示的。
GdkWindow
不是图形组件,而是GDK中的抽象资源,表示屏幕上的某个矩形区域。它可能与Xorg / Win32等中的一些低级资源密切相关。
如果您想获取包含指定窗口小部件的顶级GtkWindow
,您可以使用gtk_widget_get_toplevel或gtk_widget_get_ancestor