0

基本的に私はこれをしたい:

ユーザーがボタンを押すと、アプリケーションはその中にスピナーを含むダイアログを開く必要がありますが、一部のタスクはバックグラウンドで実行されます。このタスクが終了したら、このダイアログを破棄し、新しいダイアログを開く必要があります。

私はpythonとgtkで作業しています

どうすればいいですか?ありがとう!

4

1 に答える 1

2

基本的には2つの方法があります。違いは、誰が「メイン」プログラムであるかです。gtk に担当させたい場合は、ダイアログを作成し、アイドル時に使用するコールバックを設定するだけです ( gobject.idle_add)。このジョブは、すべてのステップに時間がかからないようにする必要があるため、gtk は GUI を更新できます (おそらくgobject.timeout_addスピナーが必要です)。

もう1つの方法は、「バックグラウンド」ジョブが制御されていることです。必要なことを実行できます。時々 gtk を呼び出して ( while gtk.events_pending (): gtk.main_iteration (False))、gtk が GUI を更新できるようにする必要があります。

于 2012-12-02T18:35:37.777 に答える