Я пытаюсь научиться использовать Tkinter для создания графического интерфейса для приложений Python. Я пытаюсь создать таймер Pomodoro, однако я столкнулся с несколькими проблемами. И я обнаружил, что эта функция, работающую с работой, можно запустить в отдельном потоке. /> < /ol>
Можете ли вы объяснить, почему это происходит и что я могу сделать, чтобы повысить отзывчивость моего графического интерфейса? < /p>
import time
import tkinter
import winsound
from tkinter.ttk import Combobox
import threading
def run_thread():
global stop
stop = False
start_timer_btn.grab_release()
threading.Thread(target=countdown()).start()
def stop_timer():
global stop
stop = True
def countdown():
option = combo.get()
if option == "25":
seconds = 1500
elif option == "15":
seconds = 900
# elif option == "2":
# countdown(300)
# elif option == "3":
# countdown(1200)
global stop
while seconds and not stop:
seconds -= 1
print("minutes", seconds // 60, "seconds", seconds % 60)
timer_label.configure(text=str(seconds // 60) + ":" + str(seconds % 60))
window.update()
time.sleep(1)
winsound.PlaySound("SystemExit", winsound.SND_ALIAS)
stop = False
window = tkinter.Tk()
window.title("POMODORO Timer")
window.geometry("300x250")
combo = tkinter.ttk.Combobox(window)
combo["values"] = [25, 15]
combo.current(1)
timer_label = tkinter.Label(window, text="00:00")
start_timer_btn = tkinter.Button(window, text="Start timer", bg="green", fg="white", command=run_thread)
stop_timer_btn = tkinter.Button(window, text="Stop timer", bg="red", fg="white", command=stop_timer)
combo.grid(row=1, column=0)
start_timer_btn.grid(row=1, column=1)
stop_timer_btn.grid(row=1, column=2)
timer_label.grid(row=0, column=2, columnspan=3)
window.mainloop()
Подробнее здесь: https://stackoverflow.com/questions/624 ... ning-loops
Кнопки с графическим интерфейсом tkinter. ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как починить Tkinter? Каждый код с графическим интерфейсом сбоя Mac OS с Respring
Anonymous » » в форуме Python - 0 Ответы
- 5 Просмотры
-
Последнее сообщение Anonymous
-