为什么 sleep 在我的代码之前运行? - Python

问题描述

from guizero import App,Window,Drawing,PushButton,Text
from time import sleep

def redon():
    draw.oval (325,550,575,800,color="#f70000")
def redoff():
    draw.oval (325,color="#520404")
def greenon():
    draw.oval (325,40,280,color="#08d10f")
def greenoff():
    draw.oval (325,color="#072e04")
def greenblink():
    draw.oval (325,color="#08d10f")
    sleep(1)
    draw.oval (325,color="#072e04")
def yellowon():
    draw.oval (325,540,290,color="yellow")
def yellowoff():
    draw.oval (325,color="#59580b")
def blueon():
    draw.oval (55,305,color = "#1594b0")
def blueoff():
    draw.oval (55,color = "#0a3842")
def sequenceon():
    seq = True
    while seq == True:
        draw.oval (325,color="#08d10f")  #green on
        for i in range(0,5): #left turn blink
            draw.oval (55,color = "#1594b0") #blue on
            sleep (0.5)
            draw.oval (55,color = "#0a3842") #blue off
            sleep (0.5)
        draw.oval (325,color="#072e04") #green off
        draw.oval (325,color="yellow") #yellow on
        sleep (1)
        draw.oval (325,color="#f70000") #red on
        sleep (1)
        draw.oval (325,color="#520404") #red off
def sequenceoff():
    seq = False
    draw.oval (325,color="#520404") #red off
    draw.oval (325,color="#072e04") #green off
    draw.oval (55,color = "#0a3842")#blue off
    draw.oval (325,color="#59580b") #yellow off


main = App(title = "Traffic Light View",width=1000,height=1000)
draw = Drawing(main,width = 1000,height = 1000)
draw.rectangle (300,10,600,810,color = "black")
draw.oval (325,color = "#072e04")
draw.oval (325,color = "#59580b")
draw.oval (325,color = "#520404")
draw.rectangle (45,315,color="black")
draw.oval (55,color = "#0a3842")
control = Window(main,title="Controller",layout = "grid",height="200",width="700")

greent = Text(control,"GREEN",grid=[0,1])
greenon1 = PushButton(control,text="Green Light - ON",command=greenon,2])
greenoff1 = PushButton(control,text="Green Light - OFF",command=greenoff,3])
greenblink1 = PushButton(control,text="Green Light -  Blink",command=greenblink,4])

yellowt = Text(control,"YELLOW",grid=[1,1])
yellowon1 = PushButton(control,text="Yellow Light - ON",command = yellowon,grid =[1,2])
yellowoff1 = PushButton(control,text="Yellow Light - OFF",command=yellowoff,3])

redt = Text(control,"RED",grid = [2,1])
redon1 = PushButton(control,text="Red Light - ON",command=redon,grid=[2,2])
redoff1 = PushButton(control,text="Red Light - OFF",command=redoff,3])

bluet = Text(control,"BLUE",grid= [3,1])
blueon1 = PushButton(control,text="Blue Light - ON",command=blueon,grid=[3,2])
blueoff1 = PushButton(control,text="Blue Light - OFF",command=blueoff,3])

sequencet =  Text(control,"SEQUENCE",grid=[4,1])
sequenceon1 = PushButton(control,text="Sequence - Start",command=sequenceon,2])
sequenceoff1 = PushButton(control,text = "Sequence - Stop",command=sequenceoff,3])
main.display()

当我运行代码并单击 greenblink() 或 sequenceon() 按钮时,按钮将按住表示代码正在休眠,然后它将运行后面的代码。为什么 sleep 在函数中的所有其他代码之前运行?

代码是用 python 编写的,用于 3b rasBerry pi。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...