python-3.x 如何将pygame放到tkinter应用程序中?

o8x7eapl  于 2023-01-10  发布在  Python
关注(0)|答案(1)|浏览(279)

我在pygame中编写了一个棋盘游戏,这很酷,但我想把它放在一个tkinter窗口中,这样我就有了游戏上方的空间,我可以在其中放置重置棋盘的按钮等。
我如何嵌入这个?我想只有一个tkinter窗口,而不是一个单独的pygame窗口。
我做了一扇Windows

win = pygame.display.set_mode((WIDTH, HEIGHT)
pygame.display.set_caption('Game')

然后我用while循环显示它

pygame.display.update()

我真的不知道怎么做一个嵌入这个的tkinter。
我尝试使用this solution,但是当我运行这个程序时,我得到了两个窗口,这不是我想要的

yduiuuwa

yduiuuwa1#

这很复杂,两个工具箱都有自己的窗口子系统。
我记得有一次我遇到了一种方法,让Pygame的SDL渲染到另一个窗口的画布上--但我现在想不起来这是否是X11(~Linux)特有的。
你可以选择用Pygame来渲染你的按钮和控件--在这种情况下,有一些补充库,比如Phil的Pygame实用程序(“PGU”--我已经为Python3 https://pypi.org/project/pygame-pgu/重新发布了一个版本)或其他类似的库。
另一种选择是让游戏应用程序使用2个独立的、相关的窗口--在这种情况下,在单独的线程中运行tkinter应该足以让两个窗口都工作--或者在pygame主循环中调用根tkinter对象上的.update()方法应该足够了。

相关问题