擅长:python、mysql、java
<p>全局作用域中的函数应该用于多进程目标函数,因此<code>startProcess()</code>应该移到全局作用域中。你知道吗</p>
<p>此外,检查<code>if __name__ == "__main__"</code>内的<code>startProcess()</code>将导致if块内的代码无法执行。你知道吗</p>
<p>最后,创建<code>startingWin</code>应该放在<code>if __name__ == "__main__"</code>块中,否则启动的每个进程都将创建<code>startingWin</code>。你知道吗</p>
<p>以下是为解决上述问题而提出的修改建议:</p>
<pre><code>from tkinter import *
import multiprocessing
def startProcess():
clientsWin = Tk()
label = Label(clientsWin, text="Nothing to show")
label.grid()
clientsWin.mainloop()
def createClientsWin():
p = multiprocessing.Process(target=startProcess)
p.start()
if __name__ == '__main__':
startingWin = Tk()
button = Button(startingWin, text="create clients", command=createClientsWin)
button.grid()
startingWin.mainloop()
</code></pre>