Я новичок в Python. Я использую версию 3.6.7 на Ubuntu 18.04 LTS.
Приведенный ниже код является просто примером теста для более крупного сценария, который я хочу написать для имитации массива светодиодов, которые могут принимать значения типа байтов и отражать их в своем состоянии вывода. Я решил использовать Tkinter и объект виджета Canvas для отображения и обновления состояний светодиодов. Проблема, с которой я столкнулся, заключается в том, что я хочу ввести задержку перед тем, как светодиод изменит состояние (в этом случае с выключенного на включенное).
Что действительно происходит, когда я запускаю этот код, так это то, что предполагаемая задержка происходит до появления окна tkinter, виджета canvas и светодиода. Когда все наконец появляется, светодиод уже находится в своем конечном состоянии (включен), поэтому состояние ВЫКЛ даже не показывалось (или оно было слишком быстрым). Как можно сначала отобразить окно, холст и светодиодный индикатор ВЫКЛ, затем задержку в 2 секунды и, наконец, состояние переключения светодиодов с выключенного на включенное? Спасибо.
# LED simulation using tkinter canvas widget
from tkinter import *
import time
root = Tk()
root.geometry('800x600')
root.title('LED Simulation')
canvas = Canvas(width=640, height=480)
canvas.pack()
# create an LED object in the OFF state (dark red filled circle)
d7 = canvas.create_oval(50, 50, 100, 100, fill='dark red')
# wait in this OFF state for 2 secs
time.sleep(2)
# change the LED state from OFF to ON (light red filled circle)
canvas.itemconfig(d7, fill='light red')
# is this even needed?
canvas.update()
root.mainloop()