如何同时打开 Pygame 窗口和 Tkinter 窗口?
Posted
技术标签:
【中文标题】如何同时打开 Pygame 窗口和 Tkinter 窗口?【英文标题】:How to open a Pygame window and a Tkinter window simultaneously? 【发布时间】:2015-09-13 11:17:12 【问题描述】:我正在使用 Pygame 模块制作一个简单的游戏。我需要在 Pygame 窗口旁边打开一个 Tkinter 窗口。
每当我尝试打开两个窗口时,第二个窗口只有在我杀死第一个窗口后才会打开。
现在,我能想到的唯一解决方案是使用多线程。但是,我无法实现它。
我该怎么做? 我真的很感激这里的一些帮助。 谢谢!
【问题讨论】:
【参考方案1】:在 pygame 中存在一个基本设计问题,如果进程已经有一个窗口,它就无法打开一个窗口。它还将阻止其他窗口在运行时打开。但是,您可以打开任意数量的 TK 窗口,并且可以在 TK 窗口内的 SDL 绘图框架内嵌入 pygame 窗口。
有关如何使用绘图框,请参阅此答案:Embedding a Pygame window into a Tkinter or WxPython frame
查看这个关于如何在tkinter
中创建多个窗口的答案:How to open multiple windows in Tkinter
【讨论】:
我可以通过设置 Tkinter frame-width = 0 得到我想要的。现在它很像一个 Pygame 窗口,我可以打开多个 Tkinter 窗口。真的很有帮助! 我只是有一个问题,我正在使用pygame.mouse.get_pos()
打印鼠标位置的值。但是现在鼠标位置值在我移动时不会更新。在将 Pygame 窗口嵌入 Tkinter 窗口之前,它工作得非常好。但是现在,我必须点击,然后我才开始获取新的位置值(我点击的地方)
很抱歉我不知道。可能是事件系统默认在嵌入式窗口中不起作用,您需要在 tkinter 中检测事件并将其转发给 pygame 并使用pygame.event.post()
以上是关于如何同时打开 Pygame 窗口和 Tkinter 窗口?的主要内容,如果未能解决你的问题,请参考以下文章