@Pythonist2023

Почему не работает цикл?

Есть код:
import tkinter as tk
from time import sleep
from threading import Thread

def window():
  size = "300x150"

  window = tk.Tk()

  window.title("Hello, world!")

  window.geometry(size)

  label = tk.Label(window, text=f"Default size: {size}")
  label.pack(pady=10)

  def button_click():
    label.config(text=f"Current size: {size}")

  button = tk.Button(window, text="Click me!", command=button_click)
  button.pack()

  window.mainloop()

# Working
window()

def helper():
  while True:
    try:
      sleep(1)
      print("helper is working")

    except:
        print("error")
        pass

# Not working
thread = Thread(target=helper)

thread.start()

thread.join()


есть UI окно, которое создается функцией window и бесконечный цикл While в котором должна происходить некая логика. Цикл While блокирующий, поэтому я поместил его в отдельный тред.

почему при вызове функции window и функции helper с циклом While одновременно, цикл не работает? UI окно отображается, но вот цикл не работает, хоть он и в отдельном треде.
  • Вопрос задан
  • 95 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Tkinter
Седой и строгий
Потому что вызов функции window блокирует основной поток и запуск потока для helper никогда не происходит.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы