GtkDialog сопоставляется без переходного родителя

У меня есть графический интерфейс, встроенный в Glade (3.18), который вызывается программой Python 3 (используя PyGObject). Я получаю много предупреждений при запуске программы (Fedora 21), которые говорят:

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

Как я могу исправить это предупреждение? Я попытался заполнить поле Transient for: main_window в Glade для всех диалоговых окон, но предупреждения все еще появляются.

2 ответов


вы исправляете это предупреждение, предоставляя GtkDialog Родительский модальный. Соответствующие функции gtk_window_set_transient_for() (который устанавливает это окно, чтобы всегда быть поверх, или переходные для, еще один) и дополнительно gtk_window_set_modal() чтобы сделать его модальным диалогом. Это в конечном счете то, что делают различные конструкторы GtkDialog.


вместо этого используйте GtkWindow; и используйте GtkDialog только тогда, когда есть родительское окно/диалоговое окно.