OSX中使用Python 3.4.3的基本tkinter接口的多处理崩溃

2024-06-08 22:27:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将tkinter帧作为单独的进程运行,但是当我使用一个相对基本的脚本运行时,该进程要么在没有启动任何窗口的情况下完成,要么崩溃。在

from tkinter import *
from multiprocessing import Process

titles = ['first', 'second', 'third', 'fourth']

class Demo(Frame):
    def __init__(self, parent=None, fname="", **options):
        Frame.__init__(self, master=parent, **options)
        self.pack()
        Label(self, text=fname).pack(side=TOP)
        Button(self, text="Quit!", command=self.quit).pack(side=TOP, fill=BOTH)

def runDemo(name):
    Demo(fname=name).mainloop() #call and run class instance...

if __name__=="__main__":
    for name in titles:
        #runDemo(name)
        Process(target=runDemo, args=(name,)).start() #spawn process...

如果我取消对“runDemo(name)”行的注释并注释掉进程调用,这至少会运行;但是,这会使窗口实例在同一进程中按顺序生成,而不是按需要在单独的进程中生成。在

据我所知,此代码中的所有内容都应该按预期运行单独的进程。在

这是在OSX10.10.4上使用Python3.4.3。我主要是在PyCharm社区版4.5中开发的,但是在PyCharm中运行或直接从命令行运行时会发生这种情况。有什么线索吗?在

已更新以添加崩溃日志:

^{pr2}$

Tags: namefromimportself进程demotkinter情况