栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python Tkinter中的多处理

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python Tkinter中的多处理

然后,您需要将

Button
小部件与启动工作线程的函数绑定在一起。例如:

import timeimport threadingimport Tkinter as tkclass App():    def __init__(self, root):        self.button = tk.Button(root)        self.button.pack()        self._resetbutton()    def _resetbutton(self):        self.running = False        self.button.config(text="Start", command=self.startthread)    def startthread(self):        self.running = True        newthread = threading.Thread(target=self.printints)        newthread.start()        self.button.config(text="Stop", command=self._resetbutton)    def printints(self):        x = 0        while self.running: print(x) x += 1 time.sleep(1) # Simulate harder task

通过这种

self.running
方法,您只能通过更改其值来优雅地结束线程。注意,使用多个线程可避免
printints
在执行时阻塞GUI 。

我已经阅读了前面的问题,并且我想为什么您在这里明确要求没有多线程的解决方案。在Tkinter中,此解决方案可用于其他线程必须与GUI部件进行通信的情况。例如:在渲染某些图像时填充进度条。

但是,正如注释中指出的那样,这种方法对于仅打印数字而言太复杂了。

在这里,您可以找到许多有关Tkinter的信息和更多示例。


编辑:

由于您的新问题已经结束,因此我将在此处更改代码以阐明最后一点。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/380449.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号