Tento kód je Python program, který vytváří jednoduchou aplikaci s grafickým uživatelským rozhraním (GUI) pro odpočet času. Aplikace využívá moduly tkinter a threading. Hlavní prvky kódu zahrnují:
- Importování potřebných modulů: tkinter pro tvorbu GUI, threading pro paralelní spouštění funkcí a time pro časování.
- Nastavení proměnných pro uživatelský vstup a řízení smyčky.
- Vytvoření hlavního okna aplikace s názvem “Odpočet” a nastavení jeho velikosti.
- Definování funkcí pro spuštění vlákna, zastavení odpočtu a samotný odpočet času.
- Přidání widgetů pro zobrazení času, uživatelského vstupu a výběru jednotek (minuty nebo sekundy).
- Tvorba tlačítek pro spuštění a zastavení odpočtu.
- Inicializace a spuštění hlavní smyčky aplikace.
Když je aplikace spuštěna, uživatel zadá počet minut nebo sekund, který chce odpočítat, a spustí odpočet pomocí tlačítka “start”. Čas se aktualizuje v reálném čase a může být kdykoli zastaven tlačítkem “stop”.
import tkinter as tk
from tkinter import ttk
import threading as th
import time
zastavit_smyčku = False
def spustit_vlakno():
th.Thread(target=zacit).start()
def zastavit():
global zastavit_smyčku
zastavit_smyčku = True
citac.configure(text="00:00")
def zacit():
global zastavit_smyčku
zastavit_smyčku = False
inp_user = int(vstup_us.get())
sec = inp_user * 60 if i.get() == 1 else inp_user
while sec >= 0:
mins, secs = divmod(sec, 60)
timeformat = f'{mins:02d}:{secs:02d}'
citac.configure(text=timeformat)
if sec == 0:
break
time.sleep(1)
sec -= 1
if zastavit_smyčku:
break
okno = tk.Tk()
okno.title("Odpočet")
okno.geometry("500x200")
citac = ttk.Label(okno, text="00:00", font="Calibri 24")
citac.pack()
vstup_us = ttk.Entry(okno)
vstup_us.pack()
i = tk.IntVar()
min = ttk.Radiobutton(okno, text="Minuty", value=1, variable=i)
min.pack()
sec = ttk.Radiobutton(okno, text="Sekundy", value=2, variable=i)
sec.pack()
start = ttk.Button(okno, text="start", command=spustit_vlakno)
start.pack()
stop = ttk.Button(okno, text="stop", command=zastavit)
stop.pack()
okno.mainloop()
[bsa_pro_ad_space id=7]