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 только тогда, когда есть родительское окно/диалоговое окно.