Кнопки с графическим интерфейсом tkinter.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Кнопки с графическим интерфейсом tkinter.

Сообщение Anonymous »

Я пытаюсь научиться использовать 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»