Все виджеты tkinter имеют метод с именем after
, который можно настроить для вызова функций в будущем. Он принимает аргумент, представляющий миллисекунды, функцию для вызова и аргументы для передачи в функцию.
Предполагается, что у вас есть root окно с именем root
, и предполагается, что у вас есть функция с именем show_page
, которая Принимая аргумент, вы можете запланировать переключение страниц один раз для каждой страницы следующим образом:
root.after(5000, show_page, page1)
root.after(10000, show_page, page2)
root.after(15000, show_page, page3)
Если вы хотите непрерывное l oop, вы можете создать одну функцию, которая выполняет итерации по списку. itertools.cycle облегчает непрерывную итерацию по списку.
Поскольку вы не предоставили [mcve], вот полностью рабочий пример, который использует метку для имитации страницы, и использует itertools.cycle
для непрерывного просмотра страниц каждые пять секунд.
import tkinter as tk
import itertools
def show_page(page):
label.configure(text=page)
def cycle_page(pages):
page = next(pages)
show_page(page)
root.after(5000, cycle_page, pages)
root = tk.Tk()
label = tk.Label(root, text="", width=20)
label.pack(padx=20, pady=20)
pages = itertools.cycle(["page1", "page2", "page3"])
cycle_page(pages)
root.mainloop()