【问题标题】:Python MultiProcessing make tkinter GUI appear againPython MultiProcessing 使 tkinter GUI 再次出现
【发布时间】:2020-08-18 15:52:06
【问题描述】:

我正在学习创建一个 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()

【问题讨论】:

  • 阅读documentation,尤其是“安全导入主模块”部分。新进程再次导入您的 Python 脚本,因此应该只运行一次的代码必须受 if __name__ == '__main__': 保护。您还没有创建minimal reproducible example,但我猜它没有得到适当的保护。

标签: python-3.x tkinter python-multiprocessing


【解决方案1】:

感谢@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()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-08
    • 2017-12-08
    • 2014-06-18
    相关资源
    最近更新 更多