Есть ли способ вызвать экран черепахи из tkinter gui? - PullRequest
0 голосов
/ 04 мая 2019

Я хочу создать графический интерфейс для игры, которую я создал. Я сталкиваюсь с проблемой при назначении имени класса для кнопки в tkinter. После запуска скрипта игра запускается, а графический интерфейс - нет. Также я заметил, что достаточно просто импортировать класс игры, чтобы это произошло. Ценю за любой совет.

Самый простой графический интерфейс

 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 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()

1 Ответ

0 голосов
/ 04 мая 2019

Да, есть четко определенный способ вызова экрана черепахи из графического интерфейса tkinter. Но в вашем примере недостаточно кода, и вы импортируете библиотеки, которых у меня нет, поэтому я не могу предоставить полный, настраиваемый пример.

API Turtle и Screen предназначены для автономных черепах. Когда внедряет в большую программу tkinter, мы используем RawTurtle и, необязательно, TurtleScreen. На уровне tkinter вам необходимо предоставить tkinter.Canvas или turtle.ScrolledCanvas, экземпляр:

root = tkinter.Tk()

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

Вы можете обернуть этот (прокрученный) холст в TurtleScreen, если вам нужно вызвать методы на основе экрана:

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

Затем вы создаете RawTurtle экземпляров, используя свой холст, прокручиваемый холст или экран:

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