DEF機能を実行するときにGUIがフリーズ。スレッドを使用しますか?
質問
私は2つのボタンがあり、それぞれが特定のことを行う小さなプログラムを作りました。ここでは、コードの簡易版だ。
シングは、コマンドが完了するまで、それがクリックされた位置と全体のGUIがフリーズでそのボタンフリーズと滞在以外罰金の作品です。 私の知る限りでは、スレッドは、このような状況で使用するのがベストだろうが、私はこの例では、それを実装する方法は考えている。
私は、GUIのための空き地とPyGTKを使用します。
def do1:
t = 2
#do something
time.sleep(t)
#do something
time.sleep(t)
def do2:
t = 3
#do something
time.sleep(t)
#do something
time.sleep(t)
class we:
wTree = None
def __init__( self ):
self.wTree = gtk.glade.XML( "ui.glade" )
dic = {
"on_buttonSone" : self.sone,
"on_buttonStwo" : self.stwo,
}
self.wTree.signal_autoconnect( dic )
gtk.main()
def sone(self, widget):
i = 0
while i < 3:
t = 1
#do something
i += 1
time.sleep(t)
self.wTree.get_widget("entryResult").set_text("Done.")
def stwo(self, widget):
start = time.clock()
array = ['A','B']
adict = {'A':do1,'B':do2}
for f in array:
adict[f]()
end = time.clock()
elapsed = end - start
gg = round(elapsed,2)
self.wTree.get_widget("entryResult").set_text(str(gg))
go=we()
解決
PyGTKの存在FAQのセクション全体はスレッドのに専念しています。
20.6は良い最小限の例のように思える。
所属していません StackOverflow