Python中文
首页
教程
问答
标签
搜索
登录
注册
在单独的线程中运行Tkinter窗体
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我写了一个简短的模块,可以传递一个图像,只需创建一个Tkinter窗口并显示它。我遇到的问题是,即使我实例化并调用在单独线程中显示图像的方法,主程序也不会继续,直到Tkinter窗口关闭。</p> <p>这是我的模块:</p> <pre><code>import Image, ImageTk import Tkinter class Viewer(Tkinter.Tk): def __init__(self,parent): Tkinter.Tk.__init__(self,parent) self.parent = parent self.initialize() def initialize(self): self.grid() def show(self,img): self.to_display = ImageTk.PhotoImage(img) self.label_image = Tkinter.Label(self,image=self.to_display) self.label_image.grid(column = 0, row = 0, sticky = "NSEW") self.mainloop() </code></pre> <p>它似乎工作得很好,除非我从下面的测试程序调用它,否则它似乎不允许我的测试程序继续,即使在不同的线程中启动。</p> <pre><code>import Image from viewer import Viewer import threading def showimage(im): view = Viewer(None) view.show(im) if __name__ == "__main__": im = Image.open("gaben.jpg") t = threading.Thread(showimage(im)) t.start() print "Program keeps going..." </code></pre> <p>我认为,也许我的问题是我应该在模块本身中创建一个新线程,但我只是想尽量保持简单,因为我对Python还不熟悉。</p> <p>不管怎样,提前谢谢你的帮助。</p> <p>编辑:为了清楚起见,我只是想做一个模块,将在Tkinter窗口中显示一个图像,以便我可以使用这个模块,任何时候我想显示一个图像。我遇到的问题是,任何时候一个程序使用这个模块,它都无法恢复,直到Tkinter窗口关闭。</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>从你的评论听起来你根本不需要一个GUI。只需将图像写入磁盘并调用外部查看器。</p> <p>在大多数系统上,应该可以使用以下方法启动默认查看器:</p> <pre><code>import subprocess subprocess.Popen("yourimage.png") </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
使用Python创建一个非常大的二进制频率矩阵来运行协作过滤
10 回答
使用Python创建一张HTML网页,其中在不同颜色中重复n遍显示“Hello World”的方法
5 回答
使用Python创建一组唯一的值length L
9 回答
使用python创建不同表格的透视表
10 回答
使用python创建不和谐频道
7 回答
使用python创建不存在的多个文件夹
1 回答
使用python创建串行远程文件
8 回答
使用python创建交互式仪表板时出现问题
3 回答
使用python创建交互式绘图
4 回答
使用python创建交互式自动电子邮件
4 回答
使用Python创建价格列表
2 回答
使用python创建修改的txt文件
8 回答
使用Python创建全局变量,初始化后更改值
10 回答
使用Python创建关键字搜索词数组
8 回答
使用Python创建具有不均匀块大小/堆叠条形图的热图
7 回答
使用Python创建具有依赖于另一列的值的列
5 回答
使用Python创建具有多列的HTML表
3 回答
使用Python创建具有时间范围数据的等距数据帧
5 回答
使用Python创建具有特定顺序或属性的XML文件
9 回答
使用Python创建具有级联功能的搜索栏
6 回答