2017-01-22 35 views
1

私はライブラリgtkmmを使用しています。私のコードはほぼ完璧です。私はそれがコンパイルされ、実行できるためだと思います。しかし、ターミナルで私はgtkmmので作られた私のソフトウェアで開いているファイルをクリックしたときに私はこのメッセージを読むことができます:gtk_window_set_transient_for()はどのように使用できますか?

Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged. 

だから、私はそれを解決することができますどのようにこのフォーラムにするために見て、私は私が持っている理解しましたこのメソッドを使用してください:gtk_window_set_transient_for()。

実際、私はGtk :: WindowとGtk :: FileChooserDialogを持っています。 gtk_window_set_transient_for()を使用した例を置くことはできますか?

ありがとうございました!

+0

"私のコードはほぼ完璧です" - これは非常に大胆な文です –

答えて

1

Gtk::FileChooserDialogなどのGTK +ダイアログはGtk::Windowから派生しています。 Gtk::Windowには方法set_transient_for(Gtk::Window &parent);があります。設定されていない場合は、あなたが見たメッセージが表示されます。

これを修正するにはset_transient_for(Gtk::Window &)を使用する必要があります。これはポインタではなく参照をとることに注意してください。だから、あなたはこのようなものを使うでしょう。

{ 
    Gtk::Window first_window; 

    ... 

    Gtk::FileChooserDialog file_dialog("Title"); 

    ... 

    file_dialog.set_transient_for(first_window); 

    ... 
} 

ダイアログの一時ウィンドウをコンストラクタで設定することもできます。そのようです。

first_windowの場合は、そういうことをする必要があります。

file_dialog.set_transient_for(*first_window); 
+0

これは完璧です!ありがとうございました ! –

関連する問題