关于Tkinter,多线程的问题
时间:2011-08-29
来源:互联网
Python code
对于上面的这段代码,我想要的效果是,点击go按钮,程序开始做事情(做事情的时候要用到,multiprocessing.map),同时设置go按钮的状态为不可用,但主UI界面不能阻塞,事情做完,go按钮的状态恢复为正常。
但事不如人意啊!当我点击go按钮时,就突然多出了与主界面一样的另外三个界面,当把这三个多出事的界面关闭后,程序才开始做事情(即输出26个字母)。原因我实在是想不出,请大家帮帮忙,在此非常感谢。
#coding=utf-8 import Tkinter import threading import multiprocessing import string import time def f1(s): time.sleep(1) print s return s def go(): b['state'] = Tkinter.DISABLED p = multiprocessing.Pool(3) for r in p.map(f1, [c for c in string.lowercase]): print r b['state'] = Tkinter.NORMAL def pgo(): t= threading.Thread(target=go) t.start() root = Tkinter.Tk() b = Tkinter.Button(root, text=u"go", command=pgo) b.pack() root.mainloop()
对于上面的这段代码,我想要的效果是,点击go按钮,程序开始做事情(做事情的时候要用到,multiprocessing.map),同时设置go按钮的状态为不可用,但主UI界面不能阻塞,事情做完,go按钮的状态恢复为正常。
但事不如人意啊!当我点击go按钮时,就突然多出了与主界面一样的另外三个界面,当把这三个多出事的界面关闭后,程序才开始做事情(即输出26个字母)。原因我实在是想不出,请大家帮帮忙,在此非常感谢。
作者: tinym87 发布时间: 2011-08-29
补充一下,我用的是py2.7
作者: tinym87 发布时间: 2011-08-29
老大们,没人帮我吗!多谢。
我在线等啊...........
我在线等啊...........
作者: tinym87 发布时间: 2011-08-29
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28