首页 > 解决方案 > Python MultiProcessing 使 tkinter GUI 再次出现

问题描述

我正在学习创建一个 gui 来开始多处理打印。当我单击开始按钮时,它会再次绘制 gui。有没有限制它只运行多处理打印?

创建了 gui.py :

def stopstart():
    global instance

    if startbtn['text']=="start":
            # Multiprocessing start here
            RunMultiProcessor()
            # End of Multiprocessing
            startbtn.configure(text="END")
            startbtn.configure(bg="#ff8a65") 
        else:
            popuptimer()
    else:
        startbtn.configure(text="start")
        startbtn.configure(bg="#e2f1f8")

startbtn = Button(leftframe, text = "start",
            background = "#e2f1f8", fg = "#000000",bd=1,command = stopstart)
startbtn.pack(side = TOP,expand = FALSE,fill = X)

创建了 multiprocessing.py :

def run():
    print("printing")
    time.sleep(2)
    print("print end")

def RunMultiProcessor():
    for _ in range(2):
           processes[i] = multiprocessing.Process(target=run,))
                processes[i].start()

标签: python-3.xtkinterpython-multiprocessing

解决方案


感谢@Mark Tolonen 的回答。下面是最终代码。

def stopstart():
    global instance

    if startbtn['text']=="start":
            # Multiprocessing start here
            RunMultiProcessor()
            # End of Multiprocessing
            startbtn.configure(text="END")
            startbtn.configure(bg="#ff8a65") 
        else:
            popuptimer()
    else:
        startbtn.configure(text="start")
        startbtn.configure(bg="#e2f1f8")

startbtn = Button(leftframe, text = "start",
            background = "#e2f1f8", fg = "#000000",bd=1,command = stopstart)
startbtn.pack(side = TOP,expand = FALSE,fill = X)

if __name__ == '__main__':
    top.mainloop()

推荐阅读