Sti*_*ele 5 tkinter python-3.x python-multiprocessing
我有一个关于多处理和 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, q)
def printX(q):
for i in range(10):
print("test")
q.put(9-i)
time.sleep(1)
return
if __name__ == '__main__':
q = multiprocessing.Queue()
n = multiprocessing.Process(name='Process2', target=printX, args = (q,))
n.start()
GUI = Countdown(q)
GUI.master.mainloop()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
471 次 |
| 最近记录: |