新手到Python,基本上我有一个带有几个按钮的窗口UI,当我按下一个按钮时,我想在后台开始处理/解析文件,而我仍然可以使用UI,但是我的UI变得没有响应“旋转轮”。
class MyUI(Frame):
def __init__(self, parent):
Frame.__init__(self, parent, background="white")
self.parent = parent
self.initUI()
def initUI(self):
self.validate_button = Button(self,
text='Validate',
command=self.validate_files).pack()
def validate_files(self):
try:
t = Thread(target=self.process_files(), args=('labala',1))
t.start
t.join
except Exception, errtxt:
print errtxt
def process_colls(self):
items = self.lb.curselection()
for i in items:
self.do_parse(self.varDirName, self.lb.get(int(i)))
def main():
root = Tk()
root.geometry("600x600+300+300")
app = MyUI(root)
root.mainloop()
if __name__=="__main__":
main()
答案 0 :(得分:1)
将self.process_files()
替换为您创建主题的self.process_files
:
t = Thread(target=self.process_files, args=('labala',1))
你应该将一个函数传递给作为目标的线程,而不是结果。
此外,如果您希望函数在线程运行时返回,请不要使用join()
。
答案 1 :(得分:0)
尝试使用threading.Thread
启动一个帖子。此代码段可以帮助您找到更多答案
from threading import Thread
...
_thread = Thread(target=lambda: my_func())
_thread.start()
在您的示例中,您忘记了调用方法的括号。