Я делаю заявку, используя glade и python в Ubuntu. Я использовал диалоговое окно about для создания страницы about, доступ к которой осуществляется через выпадающее меню. Когда я открываю этот диалог в первый раз, он работает нормально. Когда я закрываю его символом «х» в верхнем левом углу, он не открывается снова. У меня есть сигнал «delete-event», связанный с функцией close_about_window (), которая выглядит следующим образом.

def close_about_window(self, *args):

---- self.about_window.hide()

Также, если кто-то знает сигнал для кнопки «Закрыть», расположенной в нижней части экрана, по лицензии и кредитам, это будет очень цениться.

1
Daniel Copley 29 Май 2017 в 01:04

2 ответа

Лучший ответ

Таким образом, решение проблемы действительно просто. Я понял, что диалоговое окно не совпадает с окном. Вы хотите показать окно, используя .run (), а не .show_all () или .show (). Используйте .run () и затем в той же функции используйте .hide (). Ваша функция open_about_dialog () будет выглядеть следующим образом.

def open_about_dialog():
    self.about_dialog.run()
    self.about_dialog.hide()

Просто для того, чтобы не было проблем, я импортировал свой объект из моего файла glade, используя конструктор builder.get_object("about_dialog")

0
Daniel Copley 29 Май 2017 в 03:36

Поскольку страница «О программе» является диалоговым окном, при запуске диалогового окна вы можете подключить обратный вызов к сигналу response , и вы получите response_id.

Тело вашего обратного вызова может быть примерно таким:

if (response_id == Gtk.ResponseType.CANCEL || response_id == Gtk.ResponseType.DELETE_EVENT) {
    dialog.hide_on_delete ();
}

У вас также есть сигнал Dialog закрыть , который будет работать для сочетаний клавиш, скажем, нажатием ESC.

1
José Fonte 30 Май 2017 в 20:05