您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python Tkinter中的多处理

Python Tkinter中的多处理

然后,您需要将Button小部件与启动工作线程的函数绑定在一起。例如:

import time
import threading
import Tkinter as tk

class 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的信息和更多示例。

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

python 2022/1/1 18:27:46 有496人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶