Python Turtle不在Tkinter画布中&按钮不在角落中

我正在Tkinter的“画布模块”中用乌龟创建游戏。我遇到了一个问题,当我尝试生成新的乌龟时,它会在新的窗口而不是画布中生成。我做错了什么?我也想通过退出按钮解决我的问题。我一直试图将其放在右下角。我尝试过.place().grid(),但没有成功。我还尝试了其他关于stackoverflow的解决方案,但是它们要么导致错误,要么消失,可能在画布后面。

这是我的代码:

import tkinter as tk
import random
import turtle
import time
import sys

def spawn(e=None):
    xrand = random.randint(0,500)
    yrand = random.randint(0,500)
    turtle.RawTurtle(app)
    turtle.shape("square")
    turtle.penup()
    turtle.goto(x=xrand,y=yrand)

def systemap(e=None):
    app.pack()
    button.pack()

def f(e=None):
    t.setheading(90)
    t.forward(1)

def l(e=None):
    t.setheading(180)
    t.forward(1)

def r(e=None):
    t.setheading(0)
    t.forward(1)

def b(e=None):
    t.setheading(270)
    t.forward(1)

def quit(e=None):
    time.sleep(1)
    window.destroy()
    sys.exit()

window = tk.Tk()
#window.iconbitmap('py.ico')
window.title("Turtle Graphics")
window.geometry("750x500")
window.resizable(False,False)

button = tk.Button(window,text="Exit",command = quit)

app = tk.Canvas(master=window,width=500,height=500,bg="white")

t=turtle.RawTurtle(app)

window.bind("<Up>",f)
window.bind("<Left>",l)
window.bind("<Right>",r)
window.bind("<Down>",b)

window.bind("<w>",f)
window.bind("<a>",l)
window.bind("<d>",r)
window.bind("<s>",b)

window.bind("<e>",spawn)

window.bind("<Escape>",quit)

systemap()

window.mainloop()


sushe302 回答:Python Turtle不在Tkinter画布中&按钮不在角落中

我发现您必须在窗口中正在使用的所有内容上使用.pack().grid(),否则它将无法正常工作,因此您无法使用{{1} },然后使用.pack()输入一些文本。因此,您可以在所有需要放入窗口中的东西上使用.place并将它们放置在所需的位置上,这样就可以避免这种事情了:

.grid()
本文链接:https://www.f2er.com/2684390.html

大家都在问