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()
あなたはhttp://effbot.org/tkinterbook/canvas([ 'canvas.delete']を使用し、キャンバスの項目を削除するには、' del'を使用していません.htm#Tkinter.Canvas.delete-method)。あなたの問題は「この行をその行と置き換える」という簡単な解決策ではないので、これはコメントであり、答えではありません。一般に、Tkinterは 'sleep'とうまくやっていません。適切な時間遅れのある振る舞いを得るために、(root.after()を含む)大規模な再設計を行う必要があります) – Kevin