代碼應該在點擊UP鍵後變成紅色的橢圓形,然後在一段時間後刪除它。但是紅色圓圈仍然存在。 重點是我想讓這個圓圈在點擊UP鍵後閃紅,然後回到綠色。我錯過了什麼?Python tkinter問題。 del命令出錯
#!/usr/bin/env python
import Tkinter
from Tkinter import Tk, Canvas, Frame, CENTER
import time
root = Tkinter.Tk()
root.geometry("300x200")
root.title("gui")
gpio_01 = "green"
def gpio_trigger_up(event):
for i in range(2):
print "Move Forward"
time.sleep(0.1)
for i in range(1):
print "Stop"
led_01 = gpio.create_oval(160,10,190,40, fill="red")
return led_01
time.sleep(1)
del led_01
time.sleep(0.1)
gpio = Canvas()
textfont = "Helvetica"
gpio.create_oval(160,10,190,40, fill=(gpio_01))
gpio.pack()
root.bind("<Up>", gpio_trigger_up)
root.mainloop()
你不使用'del'刪除畫布的項目,你可以使用['canvas.delete'](http://effbot.org/tkinterbook/canvas的.htm#Tkinter.Canvas.delete方法)。 (我將這個帖子發表爲評論而不是答案,因爲你的問題並沒有像「用這一行代替這條線」那樣容易解決。一般來說,Tkinter對'sleep'不太好,所以你需要做一些廣泛的重新設計(可能涉及'root.after()')以獲得適當的延時行爲) – Kevin