多处理在Python Tkinter的(Multiprocessing in Python tkin

2019-07-20 11:30发布

如何在没有多线程运行在Python多个进程? 例如,考虑以下问题: -

我们必须做出桂,其具有启动功能的启动按钮(比如,打印所有整数),并有一个停止按钮,这样点击它停止功能。

如何做到这一点的Tkinter?

Answer 1:

然后,你需要的绑定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的方法,你只能通过改变其值正常结束线程。 注意,在使用多个线程的供应,同时,以避免阻塞GUI printints正在执行。

我看了这个前一个问题 ,我想你为什么明确要求这里没有多线程的解决方案。 在Tkinter的这个解决方案可以在这样一个场景,其他线程具有与GUI部件进行通信中使用。 例如:尽管一些图像被呈现填充进度。

然而,正如有人指出的意见,这种做法是对刚刚印刷的数字太复杂。

在这里 ,你可以找到很多的信息和Tkinter的更多的例子。


编辑:

由于您的新问题已经关闭,我会在这里更改代码澄清最后一点。



Answer 2:

你尝试使用多模块? 似乎是你要找的人。



文章来源: Multiprocessing in Python tkinter