Я прилагаю фрагмент кода ниже. Я определяю сигнал здесь, чтобы открыть текстовый файл, используя диалог выбора файла. Выбранный файл отображается в новом окне, используя текстовое представление. Я использую Glade, GTK и Python. Все виджеты импортируются из файла Glade, кроме диалогового окна выбора файлов. Моя проблема заключается в том, что я не могу открыть текстовый файл во второй раз при закрытии с помощью крестообразной кнопки окна. Все, что я вижу, - пустое окно. Я подключил событие уничтожения окна, чтобы выполнить функцию скрытия. Я обнаружил, что у кнопки креста на стекле было событие уничтожения по умолчанию, и как мне его изменить?
def on_open_activate(self,gtkobj,data=None):
print("opening")
textbuffer = textview3.get_buffer()
dialog = gtk.FileChooserDialog("Save file", None,
gtk.FILE_CHOOSER_ACTION_OPEN,
(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
gtk.STOCK_OPEN, gtk.RESPONSE_OK))
filter_text = gtk.FileFilter()
filter_text.set_name("Text files")
filter_text.add_mime_type("text/plain")
dialog.add_filter(filter_text)
response = dialog.run()
if response == gtk.RESPONSE_OK:
selected_file = dialog.get_filename()
with open(selected_file, 'r') as f:
data = f.read()
print(data)
textbuffer.set_text(data)
textview3.show_all()
self.window3.set_title(selected_file)
self.window3.show_all()
elif response == gtk.RESPONSE_CANCEL:
dialog.destroy()
dialog.destroy()
def gtk_widget_hide(self,gtkobj,data=None):
self.window3.hide()