Найти - Пользователи
Полная версия: tkinter after и не выводятся много label / button
Начало » GUI » tkinter after и не выводятся много label / button
1
Koala
Добрый день!

1) вот это работает - (одна Label)
 import tkinter
import time
def tick_tack():
    global label
    label.config( text=time.strftime("%H:%M:%S") )
    label.after(1000, tick_tack)
root = tkinter.Tk() # okno = tkinter.Tk()
root.title("Некоторый заголовок") # okno.title("Некоторый заголовок")
root.geometry("300x400+500+300") # 400x600 размер окна, остальное смещение этого окна
label = tkinter.Label(root) # делаем метку на окне root
label.config(text="00:00:00", font="Arial 36", fg="cyan", bg="lightgray")
#label.pack()
label.pack(pady="150")
label.after_idle(tick_tack)
root.mainloop()

2) тут по прежнему работает первая Label, а остальных 2-х не видно, хотя их всего уже три и еще есть и Button.

 import tkinter
import time
def tick_tack():
    global label
    label.config( text=time.strftime("%H:%M:%S") )
    label.after(1000, tick_tack)
def tick_tack2():
    global label2
    label2.config( text=time.strftime("%H:%M:%S") )
    label2.after(1000, tick_tack2)
def tick_tack3():
    global label3
    
    label3 = tkinter.Label(root) # делаем метку на окне root
    #label3.config(text="label_3 ==>>>  00:00:00", font="Arial 24", fg="red", bg="lightblue")
    label3.config( text=time.strftime("%H:%M:%S") )
    #label.pack()
    label3.pack(pady="350", padx="30")
    label3.after(1000, tick_tack3)
root = tkinter.Tk() # okno = tkinter.Tk()
root.title("Некоторый заголовок") # okno.title("Некоторый заголовок")
root.geometry("300x400+500+300") # 400x600 размер окна, остальное смещение этого окна
label = tkinter.Label(root) # делаем метку на окне root
label.config(text="label_1 ==>>> 00:00:00", font="Arial 36", fg="cyan", bg="lightgray")
#label.pack()
label.pack(pady="150")
label.after_idle(tick_tack)
label2 = tkinter.Label(root) # делаем метку на окне root
label2.config(text="label_2 ==>>>  00:00:00", font="Arial 48", fg="blue", bg="lightgreen")
#label.pack()
label2.pack(pady="250")
label2.after_idle(tick_tack2)
label3 = tkinter.Label(root) # делаем метку на окне root
label3.config(text="label_3 ==>>>  00:00:00", font="Arial 24", fg="red", bg="lightblue")
#label.pack()
label3.pack(pady="350", padx="30")
button3 = tkinter.Button(root, text='button3', command = tick_tack3)
button3.pack()
#label3.after_idle(tick_tack3)
root.mainloop()
3) вопрос - куда они подевались (я правда не совсем понимаю, как работают эти два разных “after”, и:
4) как сделать из этого один класс для моего Label с часами, чтобы удобно было потом их(его) клонировать?
PEHDOM
все там работает, только у вас pady мало того что строка(хотя ткинтер и ее кушает, но правильнее всетаки int), так у вас и еще какието безумны значения в pady. padх и pady это не расстояние от нуля, а отступ от соседних виджетов или от края окна если виджет крайний. Чтобы у вас были видны элементы с отступами между собой в 600 пикселей(pady=“250” и pady=“350”) у вас высота окна должна быть как минимум 1500 , а у вас 300x400, в которое влазит только первый лебл(с отступом от края pady=“150”), остальные просто за пределами окна находятся.
Koala
Премного благодарен! Да, я действительно не знал, что pady, -x это отступы от соседних виджетов.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB