Задержка времени Tkinter

Я бы liktime.sleep (), чтобы создать графическое окно в PyDev (Eclipse) python 2.75.

Я сделал несколько вещей, но я хотел бы сделать «вход» «миганием». Он проверяет ввод пользователя. Если это целое число, оно должно мигать зеленым на секунду, а затем превращаться в белое. Но если это строка чего-то еще, она должна мигать красным цветом, а затем превращаться в белое. Я использовал, но он не работает, как хотелось бы.def sprawdzam(): z = e.get() try: z = int(z) e.config(bg = 'green') time.sleep(2) e.config(bg = 'white') except: l.config(bg = 'red') time.sleep(2) e.config(bg = 'white')

Вот мой код для этого действия:

time.sleep

python,time,tkinter,

3

Ответов: 3


4 принят

after блокирует выполнение программы.

Использование из Tkinter import * def blink (): e . config ( bg = 'green' ) e . после ( 1000 , lambda : e . config ( bg = 'white' )) # после 1000ms root = Tk () e = Entry ( root ) e . pack () b = Кнопка ( корень , text = 'blink' , command = blink ) b . пакет () корень . mainloop () -method "rel =" nofollow ">after .

Например:

e.config

0

Прежде всего, вы не должны использовать try / except blocks для управления вашим кодом. Во-вторых, вы используете l.configи переключаете свои цвета, какой из них должен быть? (Чтобы уменьшить путаницу, вы должны учесть лучшие соглашения об именах для ваших переменных и объектов).def sprawdzam(): content = e.get() if content.isalnum(): e.config(bg = 'green') else: e.config(bg = 'red') time.sleep(2) e.config(bg = 'white')

Вы можете проверить тип объекта, который вводится пользователем, а затем лучше управлять потоком:

e

Здесь я использовал eкак объект для изменения цветов, но это может быть неверно для вашего кода, вы должны убедиться, что делаете это с помощью правильных объектов.

Как вы можете видеть, спящий режим и переход на белый выполняются за пределами if / else, потому что, несмотря ни на что, вы будете ждать, а затем переходите к белому, не нужно писать этот код дважды.


0
       for P in range(len(MaxTrace)):
           T = P + 1
           if T < len(MaxTrace):
               PrevPlate  , PrevDot   = MaxTrace[P][0], MaxTrace[P][1] 
               TargetPlate, TargetDot = MaxTrace[T][0], MaxTrace[T][1]
               self.__window.update()
               sleep(0.3)
               #replace REGULAR token img to ACTIVE token img
               GameCanvas.itemconfig(self.tokens[PrevPlate,PrevDot],image=self.DotImgActv[RivalColor])
               self.__window.update()
               sleep(0.2)
               # mark Target vacation for move to by Yellow-RING img
               self.tokens[TargetPlate, TargetDot]=GameCanvas.create_image(DotXY[TargetPlate,TargetDot],
                                                                           image=self.DotVacantImg  )
               self.__window.update()
               sleep(0.4)
               GameCanvas.delete(self.tokens[PrevPlate,PrevDot])
               self.__window.update()
               sleep(0.3)
               GameCanvas.itemconfig(self.tokens[TargetPlate, TargetDot],image=self.DotImg[RivalColor])
питон, время, Tkinter,
Похожие вопросы
Яндекс.Метрика