Tkinter Текстовое обновление - PullRequest
0 голосов
/ 23 апреля 2020

Я хочу автоматически обновлять текст в tkinter через регулярные промежутки времени.

    import tkinter as tk
import tkinter.font as tkFont

def update():
    print("test loop")
    text.delete("1.0", tk.END)
    text.insert(tk.END, "a")
    text.pack()

root = tk.Tk()
text = tk.Text(root, height=150, width=350)
fontPerso = tkFont.Font(family="Lucida Console", size=2)
text.configure(font=fontPerso)

text.after(10, update)

tk.mainloop()

, но он обновляется только go один раз

спасибо.

1 Ответ

0 голосов
/ 23 апреля 2020

Внутри вашей функции update вам нужно снова добавить text.after(10, update), так как это будет гарантировать, что каждый раз, когда происходит обновление, вскоре после этого будет появляться другое обновление.

import tkinter as tk
import tkinter.font as tkFont

def update():
    print("test loop")
    text.delete("1.0", tk.END)
    text.insert(tk.END, "a")
    text.pack()
    text.after(10, update)

root = tk.Tk()
text = tk.Text(root, height=150, width=350)
fontPerso = tkFont.Font(family="Lucida Console", size=2)
text.configure(font=fontPerso)

text.after(10, update)

tk.mainloop()

Несколько вещей обратите внимание, если это просто для отображения переменной и чтобы она постоянно отображала актуальное значение для переменной, используйте tk.Label и tk.stringVar, как показано здесь .

Я также не уверен, что вам нужно pack() ваш виджет после каждого обновления, чтобы его можно было удалить.

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