Я довольно новичок в Python и начал создавать графический интерфейс, отображающий информацию о новостях. Я создал пять функций, которые при вызове отображают соответствующую информацию в окне. Ниже приведен фрагмент самих функций:
# first function which creates new labels and fills them with the relevant site pic,
# first article title, and description.
def fn1():
label_maker(infoFrame, 0, 0, 630, 389, image=newImage1,
background='red')
label_maker(infoFrame, 630, 0, 655, 389, text=entry1.title,
background='blue', font=("", 20), wraplength=600)
label_maker(infoFrame, 0, 389, 1286, 389, text=entry1.description,
wraplength=1250, font=("", 16),
background='green')
# second function to create labels and fill them with relevant info
def fn2():
label_maker(infoFrame, 0, 0, 630, 389, image=newImage2,
background='red')
label_maker(infoFrame, 630, 0, 655, 389, text=entry2.title,
background='blue', font=("", 20), wraplength=600)
label_maker(infoFrame, 0, 389, 1286, 389, text=entry2.description,
wraplength=1250, font=("", 16),
background='green')
# third
def fn3():
label_maker(infoFrame, 0, 0, 630, 389, image=newImage3,
background='red')
label_maker(infoFrame, 630, 0, 655, 389, text=entry3.title,
background='blue', font=("", 20), wraplength=600)
label_maker(infoFrame, 0, 389, 1286, 389, text=entry3.description,
wraplength=1250, font=("", 16),
background='green')
# fourth
def fn4():
label_maker(infoFrame, 0, 0, 630, 389, image=newImage4,
background='red')
label_maker(infoFrame, 630, 0, 655, 389, text=entry4.title,
background='blue', font=("", 20), wraplength=600)
label_maker(infoFrame, 0, 389, 1286, 389, text=entry4.description,
wraplength=1250, font=("", 16),
background='green')
# fifth
def fn5():
label_maker(infoFrame, 0, 0, 630, 389, image=newImage5,
background='red')
label_maker(infoFrame, 630, 0, 655, 389, text=entry5.title,
background='blue', font=("", 20), wraplength=600)
label_maker(infoFrame, 0, 389, 1286, 389, text=entry5.description,
wraplength=1250, font=("", 16),
background='green')
Кроме того, вот функция label_maker для пояснения:
# define a new label maker function to construct labels within frames that
will
# be placed within infoFrame
def label_maker(master, x, y, w, h, *args, **kwargs):
frame = Frame(master, width=w, height=h)
frame.pack_propagate(0)
frame.place(x=x, y=y)
label = Label(frame, *args, **kwargs).pack(fill=BOTH, expand=1)
return label
Я хочу запускать каждую из этих функций поочередно, когда одна функция выполняется в течение ~ 15 секунд, затем выполняется следующая, затем следующая и так далее, пока окно не закроется. Я пытался использовать метод after()
, но, как я и использовал, функции выполнялись без отображения чего-либо, пока не была вызвана последняя функция. Как я могу зациклить их один за другим и заставить их отображать соответствующую информацию?