为啥我的主循环在 tkinter 中不起作用?

Posted

技术标签:

【中文标题】为啥我的主循环在 tkinter 中不起作用?【英文标题】:Why is my mainloop not working in tkinter?为什么我的主循环在 tkinter 中不起作用? 【发布时间】:2020-12-24 20:33:29 【问题描述】:

我下面有一个python3代码:

import multiprocessing as pr
from multiprocessing.managers import BaseManager
import tkinter as tk

def func(root):
    root.mainloop()

BaseManager.register('Tk', tk.Tk)
manager = BaseManager()
manager.start()
inst = manager.Tk()

# print('dd',inst)

process = pr.Process(target=func,args=[inst])
process.start()
process.join()

在上面的代码中,我创建了一个共享的 Tk 对象,并从另一个进程调用了它的 mainloop 方法。但它不起作用。

它应该创建一个窗口。怎么回事?

我需要帮助!!!

【问题讨论】:

***.com/questions/63414254/… 【参考方案1】:

您不能在进程之间共享 tkinter 对象。 Tkinter 是嵌入式 tcl/tk 解释器的包装器,嵌入式 tcl/tk 解释器不能跨越多个线程或进程。

【讨论】:

以上是关于为啥我的主循环在 tkinter 中不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

为啥嵌套循环在 laravel 中不起作用

为啥我的 while 循环中的条件在 python 中不起作用?

为啥 MPI_SEND 在我的 for 循环中不起作用?如果明确说明它工作正常

为啥这种 for 循环并行化在 Python 中不起作用?

为啥 sc.next() 或 sc.nextLine() 在循环中不起作用?

为啥 Invoke 在另一个类中不起作用