Как я могу реализовать это для send_message каждые х секунд за х раз? С импортом ткинтер - PullRequest
1 голос
/ 20 июня 2019

Попытка отправить сообщение каждые x секунд за x циклов.

У меня есть кнопка, которая вызывает send_message, и пользователи могут вводить systemFrequency и systemRunTime.

Publish_message выполняет действие.

def publish_message(self):
...#do something 

def send_message(self):
    systemFrequency = float(freqSettings.systemFrequency)
    systemRunTime = int(freqSettings.systemRunTime)
    global count

    count = 0

    if systemFrequency != 0:

        while (count < systemRunTime):
            self.schedule()

    else:
        self.publish_message()

def schedule(self):
    self.publish_message()
    self.increaseCount()

def increaseCount(self):
    global count
    count += 1

В настоящее время не ожидает x секунд, прежде чем выполнить publish_message.

1 Ответ

0 голосов
/ 20 июня 2019

Хорошо, вы можете использовать tkinter after метод.Он планирует функцию, которая будет вызвана после заданного количества миллисекунд.

def publish_message(self):
...#do something 

def send_message(self):
    systemFrequency = float(freqSettings.systemFrequency)
    systemRunTime = int(freqSettings.systemRunTime)
    global count

    count = 0

    if systemFrequency != 0:
        self.schedule()
    else:
        self.publish_message()

def schedule(self):
    if count >= systemRunTime:
        return
    self.publish_message()
    self.increaseCount()
    # works if self.master is your window, change if it isn't
    self.master.after(1000, schedule, self)
    # after 1000 ms, call schedule function with parameter self

def increaseCount(self):
    global count
    count += 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...