Нужна помощь с tkinter.

<adgul>

Новичок
Пользователь
Сен 30, 2020
5
0
1
Нужна помощь с tkinter.
У меня при написании программы появилась проблема с циклами, я не могу написать бесконечный цикл (while True:). Нет всё так-то получается, но окно зависает и я не знаю что мне делать. Можете помочь?
Мне нужно чтобы каждый тик цикла while мне прибавлялось +1 и выводилось в Label.
Спасибо.

Python 3.7
программирую через - "Geany".
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 645
472
83
можно так
Python:
import tkinter as tk
import time

root = tk.Tk()
root.minsize(width=400, height=400)
root.maxsize(width=400, height=400)
label = tk.Label(root)
label.pack()

count = 0
while True:
    label.config(text=count)
    root.update()
    count += 1
    time.sleep(1)

root.mainloop()
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Нет всё так-то получается, но окно зависает и я не знаю что мне делать.
Запускать цикл в отдельном потоке.
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 645
472
83
ну да либо поток
Python:
import tkinter as tk
import time, threading

root = tk.Tk()
root.minsize(width=400, height=400)
root.maxsize(width=400, height=400)
label = tk.Label(root)
label.pack()

def thread():
    count = 0
    while True:
        label.config(text=count)
        root.update()
        count += 1
        time.sleep(1)

thread_thread = threading.Thread(target=thread, daemon=True)
thread_thread.start()
root.mainloop()
 

<adgul>

Новичок
Пользователь
Сен 30, 2020
5
0
1
ну да либо поток
Python:
import tkinter as tk
import time, threading

root = tk.Tk()
root.minsize(width=400, height=400)
root.maxsize(width=400, height=400)
label = tk.Label(root)
label.pack()

def thread():
    count = 0
    while True:
        label.config(text=count)
        root.update()
        count += 1
        time.sleep(1)

thread_thread = threading.Thread(target=thread, daemon=True)
thread_thread.start()
root.mainloop()
Спасибо большое.
 

Форум IT Специалистов