有没有办法从 tkinter gui 调用 turtle screen?

Is there any way to call turtle screen from tkinter gui?

我想为我创建的游戏创建图形用户界面。我在为 tkinter 中的按钮分配 class 名称时遇到了问题。在脚本 运行、游戏 运行s 和 gui 之后没有。我还注意到仅导入游戏 class 就足以让它发生。感谢任何建议。

最简单的图形用户界面

 from agario import game
        class menu():
            def __init__(self):
                tk.Tk.__init__(self)
                tk.Tk.geometry(self, '450x400')
                tk.Button(self, text='start', width=20, command=game()).pack()


        test = menu()
        test.mainloop()

游戏class

    class game():
        s = 0.4                                 #### agario speed
        wn = t.Screen()
        wn.title("agario game")
        wn.setup(width=600, height=500)
        wn.tracer(0)
        wn.bgcolor("black")



        while True:

            wn.update()
            move(a.agario_object, wn, s).movement() ### movement part
            killing(k.killing_object, a.agario_object,k.killing_ball).agario_border_check(), killing(k.killing_object, a.agario_object,k.killing_ball).killing_ball_check() ## kiling balls part
            cko(a.agario_object,f.food_object, f.food).food_con(), cko(a.agario_object,f.food_object, f.food).boost_con(b.boost_object, b.boost) ## contacts part


        wn.mainloop()

是的,有一种定义明确的方法可以从 tkinter GUI 中调用 turtle 屏幕。但是您的示例中没有足够的代码,并且您导入了我没有的库,所以我无法提供完整的自定义示例。

TurtleScreen API 用于 standalone turtle。当 嵌入 到更大的 tkinter 程序中时,我们使用 RawTurtle 和可选的 TurtleScreen。在 tkinter 级别,您需要提供 tkinter.Canvasturtle.ScrolledCanvas,实例:

root = tkinter.Tk()

canvas = turtle.ScrolledCanvas(root)
canvas.pack(side=tkinter.LEFT)

如果您需要调用基于屏幕的方法,您可以将(滚动的)canvas 包裹在 TurtleScreen 中:

screen = turtle.TurtleScreen(canvas)
screen.setworldcoordinates(-10, 100, 100, -10)

然后您使用 canvas、滚动 canvas 或屏幕创建 RawTurtle 个实例:

turtle = turtle.RawTurtle(screen)
turtle.goto(90, 90)