Проблемы с Widget.hide () - PullRequest
       18

Проблемы с Widget.hide ()

0 голосов
/ 27 августа 2010

Проблема: Виджет «A» - это окно верхнего уровня, которое отображается после нажатия кнопки в главном окне «B». Как назначить обработчик для обработки сигнала, отправленного обратно после нажатия кнопки «X» вдоль границы окна виджета «A» (текущая реализация приведена ниже)?

def on_mainWindow_B_button_clicked(self, widget):
     self.widget_a.show()

def on_widget_a_destroy(self, widget): #this is the handler I have right now yet after it's called and widget.a closes and 'on_mainWindow_B_button_clicked' is called for the second time none of widget.a's children appear in the new window
     widget.hide()

1 Ответ

1 голос
/ 27 августа 2010

Обработчик для сигнала delete_event должен возвращать True, чтобы остановить окончательное разрушение окна при закрытии.

    self.widget_a.connect('delete_event', self.on_widget_a_delete)

def on_widget_a_delete(self, widget, event):
    widget.hide()
    # do something
    return True

Если вы хотите, чтобы окно было скрыто, есть встроеннаяярлык вы можете использовать:

self.widget_a.connect('delete_event', self.widget_a.hide_on_delete)
...