web-dev-qa-db-ja.com

一時的な親なしでマップされたGtkDialog

Glade(3.18)に組み込まれたGUIがあり、Python 3プログラム(PyGObjectを使用)によって呼び出されます。プログラム(Fedora 21)を実行すると、次のような多くの警告が表示されます。

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

この警告を修正するにはどうすればよいですか?すべてのダイアログウィンドウでGladeのTransient for: main_windowフィールドに入力しようとしましたが、警告が表示されたままです。

35
tobias47n9e

この警告を修正するには、GtkDialogにモーダルになる親を与えます。関連する関数は、gtk_window_set_transient_for()(このウィンドウを常に一番上、またはtransient for、別のウィンドウの一番上に設定する)およびオプションでgtk_window_set_modal()でモーダルダイアログにします。これは最終的に、さまざまなGtkDialogコンストラクターが行うことです。

19
andlabs

代わりにGtkWindowを使用してください。また、GtkDialogは、親ウィンドウ/ダイアログがある場合にのみ使用します。

1
kenchoy