Только начал изучать PyGTK. Сразу, дабы в будущем облегчить себе жизнь, я пишу свои классы и функции по изученным материалам. Такой вопрос: после закрытия скрипт висит в процессах. Как это исправить? Сразу скажу, что данный класс планируется использовать для программы, у которой нет интерфейса (она висит в трее), а необходимость, посредством информационных окон, доносить результаты работы к пользователю остается. Поправьте, пожалуйста, если я где-то допустил ошибку.
import gtk
# Константы кнопок.
YES = gtk.BUTTONS_OK
YES_NO = gtk.BUTTONS_YES_NO
YES_CANCEL = gtk.BUTTONS_OK_CANCEL
CLOSE = gtk.BUTTONS_CLOSE
# Константы окон.
INFO = gtk.MESSAGE_INFO
QUERY = gtk.MESSAGE_QUESTION
WARNING = gtk.MESSAGE_WARNING
ERROR = gtk.MESSAGE_ERROR
class PyGtkDialog(gtk.Window):
def __init__(self):
super(PyGtkDialog, self).__init__()
def __show(self, widget, title, text, buttons, par):
window = gtk.MessageDialog(self, gtk.DIALOG_MODAL, par, buttons, text)
window.set_title(title)
response = window.run()
result = None
if response == gtk.RESPONSE_YES or response == gtk.RESPONSE_OK:
result = "yes"
elif response == gtk.RESPONSE_CANCEL:
result = "cancel"
elif response == gtk.RESPONSE_CLOSE:
result = "close"
elif response == gtk.RESPONSE_NO:
result = "no"
window.destroy()
return result
def show(self, title="Title", text="Text", buttons=CLOSE, par=INFO):
result = self.__show(self, title, text, buttons, par)
gtk.main()
return result
if __name__ == "__main__":
gtk_dialog = PyGtkDialog()
result = gtk_dialog.show("Заголовок", "Текст", YES_CANCEL, WARNING)
print result