2011-12-06 20 views
3

私はウィジェットのウィンドウをフルスクリーンに設定しようとしています。GTK - ウィジェットのウィンドウをフルスクリーンに設定

必要に応じ*のGtkWindow、*ではない私はgtk_widget_get_root(_window)を使用して、ウィジェットのルートウィンドウを取得して、フルスクリーンにそれを設定するためにgtk_window_fullscreen()を使用してみましたが、ドキュメントが(私も試してみました)gtk_widget_get_root_window()gtk_widget_get_parent_window()はGdkWindowを返すことを言います。

私は* GdkWindow *はのGtkWindowにキャストしようとしたが、それは私に、このエラーを与える:

Gtk-CRITICAL **: IA__gtk_window_fullscreen: assertion `GTK_IS_WINDOW (window)' failed

コードは次のようになります。私もウィジェットが持っていることに気付きました

gtk_window_fullscreen (GTK_WINDOW(gtk_widget_get_root_window (widget))); 

フィールド "ウィンドウ"でもGdkWindow *タイプです。私はフルスクリーンに設定したい機能に窓ウィジェットを持っていません

...

答えて

7

GtkWindowGdkWindowは全く異なるものです。

「ウィンドウ」について考えるとき、通常は、最小化/最大化ボタンなどを備えたトップレベルのサイズ変更可能な「ボックス」などのグラフィックコンポーネントを意味します。これは、GtkWindowによって表されます。

しかし、GDKは「ウィンドウ」に別の意味を持ちます。 GdkWindowは、グラフィカルなコンポーネントではなく、GDK内の抽象的なリソースであり、画面上の矩形領域を表します。それはあなたが特定のウィジェットを含むトップレベルGtkWindowを取得したい場合、あなたはおそらく、あなたは岩gtk_widget_get_toplevelまたはgtk_widget_get_ancestor

+0

を使用することができ、おそらく密接などのXorg/Win32の内部のいくつかの低レベルのリソースに

を関連しています!ありがとう、それは働いた! – PALEN

関連する問題