小编Sti*_*ele的帖子

多处理 - tkinter 管道通信

我有一个关于多处理和 tkinter 的问题。我在使我的进程与 tkinter GUI 并行运行时遇到了一些问题。我创建了一个简单的示例来练习,并且一直在阅读以了解多处理的基础知识。但是,将它们应用于 tkinter 时,一次只运行一个进程。(使用多处理模块更新 Tkinter GUI)此外,当我添加队列以在进程之间进行通信时,(如何在 Python 中使用多处理队列?),该进程甚至不会启动。

目标: 我想要一个进程倒计时并将值放入队列中,另一个进程在 1 秒后更新 tkinter 并向我显示值。

感谢所有建议

亲切的问候,S

编辑:我希望在调用 after 方法时数据可用。所以问题不在于after函数,而在于after函数调用的方法。每次完成计算需要0.5秒。因此,GUI 每秒无响应半秒。

EDIT2:根据反馈对代码进行了更正,但此代码尚未运行。

class Countdown(): 
    """Countdown prior to changing the settings of the flows"""

    def __init__(self,q):

        self.master = Tk()
        self.label = Label(self.master, text="", width=10)
        self.label.pack()
        self.counting(q)

    # Countdown()
    def counting(self, q):
        try:
            self.i = q.get()
        except:
            self.label.after(1000, self.counting, q)

        if int(self.i) <= 0:
            print("Go")
            self.master.destroy()

        else:
            self.label.configure(text="%d" % self.i)
            print(i)
            self.label.after(1000, self.counting, …
Run Code Online (Sandbox Code Playgroud)

tkinter python-3.x python-multiprocessing

5
推荐指数
1
解决办法
471
查看次数