Python: как я могу отложить выполнение второй функции на одну секунду - PullRequest
0 голосов
/ 19 декабря 2018

Итак, я хочу знать, как я могу сделать задержку между выполнением двух функций.Цель состоит в том, чтобы заменить обычную пустую кнопку черной после того, как она появилась на экране в течение одной секунды.Моя текущая программа упрощенная выглядит следующим образом, и она просто задерживает выполнение CreateInterface():

class Program(Frame):
    def __init__(self,root):
        self.root=root
        self.root.title('Test')
        super().__init__(self.root)
        self.grid()
        self.Start()
        return

    def Start(self):
        startbtn=Button(self,width=5, font=('Calibri',16,'bold'), height=2, text='start',command=lambda:self.CreateInterface())
        startbtn.grid(row=1,column=1)

    def CreateInterface(self):
        time.import
        btn1=Button()
        btn1.grid(row=1,column=1)
        time.sleep(10)
        self.Function2(self)
        return

    def Function2(self):
        btn2=Button(bg='black')
        btn2.grid(row=1,column=1)
        return

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

В графическом интерфейсе вызов time.sleep заставляет весь процесс ждать, поэтому приложение зависает.Используя Tk в Python, вы можете использовать метод Tk after в окне или фрейме, а затем вызвать функцию, которая внесет необходимые изменения в вашу кнопку.Есть примеры того, как это сделать на Как создать таймер с помощью tkinter

0 голосов
/ 19 декабря 2018

Используйте time.sleep, чтобы приостановить выполнение программы на определенное время.Если вы хотите сделать паузу на 1 секунду после вызова CreateInterface, измените его на следующее:

def CreateInterface(self):
        btn1=Button()
        btn1.grid(row=1,column=1)
        time.sleep(10)
        self.Function2(self)
        time.sleep(1)

Не забывайте import time, когда вы делаете это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...