0
我制作了一个小程序,它有两个按钮,每个都有特定的功能。这是代码的简化版本。执行def函数时GUI会冻结。使用线程?
事情是否正常工作除了按钮冻结并停留在点击位置和整个GUI冻结,直到命令完成。 据我所知在这种情况下最好使用线程,但我不知道如何在这个例子中实现它。
我对gui使用glade和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()