2

バックグラウンドで python/gtk を使用して、 gladeで設計された GUI を持っていdelete eventます。それで、どんな光?

#!/usr/bin/python
import .... stuff




class App:
  def __init__(self):


    self.gladefile = 'test.glade'
    windowname = 'window'# This must match the window name in glade
    self.wTree = gtk.glade.XML(self.gladefile, windowname)# object for acessing widgets


    dic={
    # Also need to set project2's signal tab
       'on_window_delete_event':self.on_erro,
       'on_window_destroy_event':self.on_erro,
         }

    self.wTree.signal_autoconnect (dic)
    self.op=self.wTree.get_widget('window')
    self.op.show()

  def on_erro(self,widget,*args):

        print 'hello'






app = App()
gtk.main()

このコードは単純なウィンドウを開きます。閉じるボタンをクリックすると、hello が出力されて終了します。(ウィンドウを開いたままにしておきたい)

4

1 に答える 1

5

のドキュメントに記載されているようにTrue、コールバックで削除イベントの伝播を停止するには、戻る必要があります。現在のコードでは、コールバックは関数が必要とするブール値を返していません。これは返されていると思います(コールバック関数の署名を確認してください。戻り値の型はブール値です) これが役に立てば幸いです!on_erro"delete-event"Falseon_window_delete_event

于 2013-02-03T20:31:46.007 に答える