【发布时间】:2025-12-17 23:00:02
【问题描述】:
我正在使用 Pygame 模块制作一个简单的游戏。我需要在 Pygame 窗口旁边打开一个 Tkinter 窗口。
每当我尝试打开两个窗口时,第二个窗口只有在我杀死第一个窗口后才会打开。
现在,我能想到的唯一解决方案是使用多线程。但是,我无法实现它。
我该怎么做? 我真的很感激这里的一些帮助。 谢谢!
【问题讨论】:
我正在使用 Pygame 模块制作一个简单的游戏。我需要在 Pygame 窗口旁边打开一个 Tkinter 窗口。
每当我尝试打开两个窗口时,第二个窗口只有在我杀死第一个窗口后才会打开。
现在,我能想到的唯一解决方案是使用多线程。但是,我无法实现它。
我该怎么做? 我真的很感激这里的一些帮助。 谢谢!
【问题讨论】:
在 pygame 中存在一个基本设计问题,如果进程已经有一个窗口,它就无法打开一个窗口。它还将阻止其他窗口在运行时打开。但是,您可以打开任意数量的 TK 窗口,并且可以在 TK 窗口内的 SDL 绘图框架内嵌入 pygame 窗口。
有关如何使用绘图框,请参阅此答案:Embedding a Pygame window into a Tkinter or WxPython frame
查看这个关于如何在tkinter中创建多个窗口的答案:How to open multiple windows in Tkinter
【讨论】:
pygame.mouse.get_pos() 打印鼠标位置的值。但是现在鼠标位置值在我移动时不会更新。在将 Pygame 窗口嵌入 Tkinter 窗口之前,它工作得非常好。但是现在,我必须点击,然后我才开始获取新的位置值(我点击的地方)
pygame.event.post()