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

时间:2011-12-06 20:58:03

标签: 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)));

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

我想在全屏设置它的功能中没有窗口小部件......

1 个答案:

答案 0 :(得分:7)

GtkWindowGdkWindow完全不同。

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

然而,GDK对“窗口”有另一个含义。 GdkWindow不是图形组件,而是GDK中的抽象资源,表示屏幕上的某个矩形区域。它可能与Xorg / Win32等中的一些低级资源密切相关。

如果您想获取包含指定窗口小部件的顶级GtkWindow,您可以使用gtk_widget_get_toplevelgtk_widget_get_ancestor