Сам диалог должен вызываться при попытке закрыть главное окно.
Вот код (все проблемы прокомментированы):
#!/bin/env pythonПроблемы:
# -*- coding: utf-8 -*-
import pygtk
pygtk.require( ‘2.0’ )
import gtk
class GUI:
def init_quit_dialog(self):
self.quit_dialog = gtk.Dialog( title='Выход…', parent=self.mainwin )
self.quit_dialog.set_position( gtk.WIN_POS_CENTER )
yes_button, no_button, label = gtk.Button( ‘Да’ ), gtk.Button( ‘Нет’ ), gtk.Label( ‘Уверен?’ ) # BTW, как лучше создавать виджеты в диалоговом окне? про add_button я не понял что вставлять вместо response_id
self.quit_dialog.action_area.pack_start( yes_button, True, True, 0 )
self.quit_dialog.action_area.pack_start( no_button, True, True, 0 )
self.quit_dialog.vbox.pack_start( label )
self.quit_dialog.set_border_width( 20 )
yes_button.show()
no_button.show()
label.show()
yes_button.connect( ‘clicked’, gtk.main_quit ) # Выполняется только если я попытаюсь закрыть диалоговое окно. Почему?
no_button.connect( ‘clicked’, lambda w: self.quit_dialog.hide ) # нужно что бы при нажатии этой кнопки диалоговое окно исчезало, а главное оставалось. Этого не происходит
#self.quit_dialog.connect( ‘delete_event’, ээээ ) # собственно надо что б при закрытии диалога происходило тоже самое что и при нажатии no_button
def quit_dialog_run(self, widget, event):
self.quit_dialog.run()
def __init__(self):
self.mainwin = gtk.Window( gtk.WINDOW_TOPLEVEL )
self.init_quit_dialog()
self.mainwin.connect( ‘delete_event’, self.quit_dialog_run )
self.mainwin.show()
def main(self):
gtk.main()
GUI().main()
0. При нажатии “да” нужно еще закрыть сам диалог что бы приложение завершилось.
1. При попытке закрыть диалог почему то закрывается главное окно, а сам диалог остается.
2. Как быть с кнопкой “нет” вообще не понятно. Спрятать диалог? - не работает
P.S.: Я нуб, не пинайте сильно.