У меня есть приложение CLI, которое копает некоторые данные, в случае необходимости запускает поток, который создает окно GTK с некоторой информацией.Однако CLI (основной поток) все еще анализирует данные в фоновом режиме, поэтому может быть создано множество окон.Если я закрываю окно, событие уничтожения фактически запускается, я получаю строку отладки в CLI, но окно блокируется.
Какая магическая команда, которую я должен использовать?
Я создаю подобное окно в основном потоке:
gtk.gdk.threads_init()
notifyWindow = NotifyWindow()
notifyWindow.start()
Это NotifyWindow (Thread) .destroy
def destroy(self, widget, data=None):
print "destroy signal occurred"
gtk.main_quit()
Это NotifyWindow (Thread) .run
def run(self):
self.window = gtk.glade.XML( "hadinfo.glade" )
self.window_main = self.window.get_widget("window_main")
if (self.window_main):
self.window_main.connect("destroy", self.destroy)
self.window_main.connect("delete_event", self.delete_event)
self.button_cancel = self.window.get_widget("button_cancel")
self.button_cancel.connect("clicked", self.destroy)
self.window.get_widget("window_main").show()
gtk.main()