Этот цикл создает новый ярлык для каждого цикла ... Почему? - PullRequest
0 голосов
/ 20 мая 2018

Каждый раз, когда он зацикливается, он создает совершенно новый ярлык, а не просто обновляет.

from tkinter import *
import psutil

def task():
   e = Entry(root)
   e.pack()

   e.delete(0, END)
   e.insert(0,psutil.cpu_percent(interval=None))
   s = e.get()
   root.after(500, task)  # reschedule event in .5 seconds


root = Tk()
root.after(500, task)
root.mainloop()

1 Ответ

0 голосов
/ 20 мая 2018

Поскольку каждый раз, когда вы вызываете функцию task, она создает новый объект Entry и удаляет содержимое нового объекта вместо использования одной глобальной записи.

Прежде всего создайте запись:

root = Tk()
e = Entry(root)
e.pack()

Затем убедитесь, что ваша целевая функция использует единственную глобальную запись e без создания новых:

def task():
    e.delete(0, END)
    e.insert(0, psutil.cpu_percent(interval=None))
    root.after(500, task)

, а затем вы можете вызвать функцию и позволить ейпозвони сам.

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