线程和tkinter

时间:2013-01-14 22:00:38

标签: python multithreading tkinter python-imaging-library

我正在制作一个图像处理类,用于介绍CS课程,使用PIL进行图像处理,使用Tkinter进行图片处理。为了让用户能够在操作时看到图片,我使用类似于this question的代码在单独的线程上运行图形操作。这似乎是有效的(即没有崩溃),但我无法显示图像 - Tk正在启动,但没有窗口出现。代码如下所示:

self.root = Tk.Toplevel()
self.frame = tk.Frame(self.root, width=self.image.size[0], height=self.image.size[1])
img = ImageTk.PhotoImage(self.image)
self.label = tk.Label(self.frame, image=img)
self.label.image = img
self.label.pack()
self.frame.pack()
tick()
self.root.mainloop()

tick功能类似于链接问题中的功能。我怀疑我的问题是由于对Tkinter的误解,但我真的不知道。

另外,我似乎无法让程序很好地退出 - 即使我在构造运行它的daemon=True时设置Thread,我仍然必须点击{{ 1}}当我完成。这看起来有点难看,而且我宁愿不用虚假的错误信息打扰学生。

编辑:这是更多代码。

C-c

0 个答案:

没有答案