Как заставить случайный текст появляться каждые несколько секунд из списка?

#python #tkinter

#python #tkinter

Вопрос:

Я могу заставить случайный текст появляться и исчезать, но я не могу понять, как заставить случайную строку появляться саму по себе.

 import tkinter as tk
import random

root = tk.Tk()


foo = ['1', '2', '3','a', 'b', 'c']

label = tk.Label(root, text=random.choice(foo))
label.pack()
root.after(2000, label.destroy)

root.mainloop()
  

Ответ №1:

Вы имели в виду, что функция обновляет текст в ярлыке?

 import tkinter as tk
import random

root = tk.Tk()

foo = ['1', '2', '3','a', 'b', 'c']

label = tk.Label(root)
label.pack()

def after():
    label.config(text=random.choice(foo))
    root.after(2000, after)
    
after()

root.mainloop()
  

Комментарии:

1. Именно то, что я искал. Спасибо! Есть ли способ приостановить его на несколько секунд, прежде чем появится новый текст?

2. Что вы имеете в виду? Я использовал ту же 2000 задержку, что и вы.

Ответ №2:

Вы могли бы использовать функцию для непосредственного изменения текста в label, например:

 import tkinter as tk
import random

def change_the_label():
    label["text"] = random.choice(foo)
    root.after(2000, change_the_label)

root = tk.Tk()
foo = ['1', '2', '3','a', 'b', 'c']

label = tk.Label(root,text=random.choice(foo))
label.pack()
root.after(2000, change_the_label)

root.mainloop()