【发布时间】:2017-08-14 17:06:14
【问题描述】:
代码应该在按下UP键后变成红色椭圆,然后在一定时间后将其删除。然而,红色圆圈仍然存在。 关键是我想让这个圆圈在按下 UP 键后闪烁红色,然后回到绿色。我错过了什么?
#!/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。 (我将其作为评论而不是答案发布,因为您的问题不像“用那一行替换这一行”那么容易解决。一般来说,Tkinter 与sleep配合得不好,所以你需要进行一些广泛的重新设计(可能涉及root.after())以获得正确的延时行为)
标签: python tkinter tkinter-canvas del