在 python IDLE Shell 中使用 tkinter 获取无效语法错误

Getting an Invalid Syntax error using tkinter in python IDLE Shell

这是代码,请帮忙

from tkinter import *
tk = Tk()
canvas = Canvas(tk, width=400, height=400)
canvas.pack()
canvas.create_polygon(10, 10, 10, 60, 50, 35)
1
def movetriangle(event):
    canvas.move(1, 5, 0)
Canvas.bind_all('<KeyPress-Return>', movetriangle)
SyntaxError: invalid syntax

它将 Canvas.bind_all 中的 C 突出显示为无效语法。我试图在按下回车键时让三角形移动。任何帮助或替代代码将不胜感激。我猜想 Canvas.bind_all 需要修改代码才能工作,或者需要导入一些东西才能工作。

您正在使用 class 名称 Canvas 而不是变量名称 canvas。 此外,您必须调用 tk.mainloop() 才能实际执行您的操作。 所以试试这个:

from tkinter import *
tk = Tk()
canvas = Canvas(tk, width=400, height=400)
canvas.pack()
canvas.create_polygon(10, 10, 10, 60, 50, 35)

def movetriangle(event):
    canvas.move(1, 5, 0)
canvas.bind_all('<KeyPress-Return>', movetriangle)
tk.mainloop()