0

内部にボタンのない新しいメッセージ ダイアログを作成しようとしています。いくつかの情報が表示されますが、関数の実行後にプログラムで閉じるのに問題があります。run() および response() 関数について読み、いくつかのコードを書きました。

def stop():
    md.response(0)

md = gtk.MessageDialog(None, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_QUESTION, gtk.BUTTONS_NONE, "Wait... computing...")
print 'closing in 5 secs...'
threading.Timer(5.0, stop).start()
md.run()
md.destroy()

問題は、メイン アプリケーション ウィンドウを閉じた後に stop() が実行されることです。そして、上記のプログラムが正しく動作したとしても、私が望んでいたことにはなりません。関数の実行後にメッセージ ダイアログを閉じるためのアイデアはありますか?

よろしく、 モプシク

4

1 に答える 1

1

スレッド化された gtk アプリケーションを作成するのは本当に大変な作業です。多くの場合、デッドロックで終了します。

gtk for のドキュメントをチェックインしてくださいgtk.timeout_add

于 2013-03-25T14:10:06.157 に答える