Detta användbara verktyg kan hjälpa dig att arbeta mer produktivt, och du kan bygga det själv med hjälp av Tkinter.

Pomodoro-tekniken är en tidshanteringsteknik utvecklad av Francesco Cirillo. Det innebär att man använder en timer för att dela upp arbetet i intervaller på 25 minuter åtskilda av en paus på fem minuter. När du har slutfört denna cykel fyra gånger kan du ta en längre paus på 20 minuter.

Pomodoro-tekniken ökar produktiviteten, eliminerar distraktioner och ökar en individs fokus på arbetet. Denna teknik blir av med multitasking och belönar dig med pauser som belöning. Detta hjälper dig att hålla dig avslappnad och motiverad att fortsätta ditt arbete dedikerat.

Tkinter och matematikmodulen

För att bygga Pomodoro Timer-applikationen behöver du modulen Tkinter och Math. Tkinter är standard GUI-biblioteket för Python. Den erbjuder en mängd olika widgets som knappar, etiketter och textrutor, så att du kan utveckla appar på nolltid. För att installera Tkinter, öppna en terminal och kör:

instagram viewer
pip installera tkinter

Math-modulen kommer i standard Python-biblioteket och är mycket användbar för att utföra matematiska beräkningar. Den kommer med aritmetiska, trigonometriska, exponentiella, logaritmiska, hjälpfunktioner och konstanter som pi och e.

Hur man bygger en Pomodoro Timer-app med Python

Du kan hitta källkoden för Pomodoro Timer-appen med Python i denna GitHub-förråd.

Börja med att importera Tkinter och Math-modulen. Initiera Pomodoros arbetseffektivitetstid, paustid, lång paustid, räknare och timervariabler. Du använder räknarvariabeln, reps, för att räkna ut antalet Pomodoro-cykler som timern har slutfört.

från tkinter importera *
importera matematik

WORK_MIN = 25
SHORT_BREAK_MIN = 5
LONG_BREAK_MIN = 20
reps = 0
timer = Ingen

Definiera en funktion, reset_timer(). Börja med att ställa in Start knappens tillstånd till normalt för att aktivera det; du kommer att se senare var du kan inaktivera det.

Anropa metoden after_cancel() för att stoppa timerfunktionen. Använd item_config() metod på duken för att nollställa timern som visas på skärmen. Ändra titeltexten till "Timer" och färglägg den lila. Ta bort alla bockmarkeringar som finns genom att ställa in texten på den tomma strängen.

Referera till den globala variabelns reps och nollställ den.

defreset_timer():
startknapp["stat"] = "vanligt"
root.after_cancel (timer)
canvas.itemconfig (timer_text, text="00:00")
title_label.config (text="Timer", fg=#A020F0')
check_marks.config (text="")
global reps
reps = 0

Definiera en funktion start_timer(). Det är här du inaktiverar Start för att förhindra att användaren klickar på den igen.

Fortsätt genom att referera till det globala reps variabel och öka den. Få antalet sekunder för att utföra ditt arbete, den korta pausen och den långa pausen. Om räknarvariabeln inte lämnar någon rest när den divideras med åtta (fyra Pomodoro-cykler där en cykel består av arbete och en kort paussession), starta långpaustimern och visa den på skärmen i blått Färg.

På samma sätt, om återstoden är noll när de divideras med två, starta och visa kortpaustimern i grön färg. Annars startar du arbetstimern och visar densamma i röd färg.

defstart_timer():
startknapp["stat"] = "Inaktiverad"

Definiera en funktion, nedräkning() som accepterar räkning. Ställ in den minimala räknevariabeln som det närmaste lilla heltal till antalet dividerat med 60. Ställ in det andra räknevärdet som räknemodulen med 60. Om sekunderna är mindre än 10, visa en extra nolla framför den. Ställ in duken på visningen av aktuell minut och tid som beräknat ovan.

Om räkningen är större än noll, referera till den globala timern och ställ in be den ringa tillbaka själva count_down-funktionen efter en fördröjning på en sekund och minska räkningen med en.

defnedräkning(räkna):
count_min = math.floor (count / 60)
count_sec = count % 60

om count_sec < 10:
count_sec = f"0{count_sec}"

canvas.itemconfig (timer_text, text=f"{count_min}:{count_sec}")

om räkna > 0:
global timer
timer = root.after(1000, count_down, count - 1)

Annars ringer du start_timer() funktionen, sätt bockmarkeringarna till noll och beräkna arbetspassen som det minsta närmaste heltal till räknaren dividerat med två. Iterera över arbetspassen och öka bockarna på lämpligt sätt. Konfigurera check_marks() funktion för att visa texten som bockmarkeringsvariabel.

annan:
start_timer()
märken = ""
work_sessions = math.floor (reps / 2)

för _ i intervall (arbetssessioner):
markerar += "✓"

check_marks.config (text=marks)

Initiera Tkinter-instansen och visa rotfönstret. Ställ in titeln på din applikation och konfigurera den så att den har lite utfyllnad i båda riktningarna. Ställ in bakgrunden till ljusgul.

root = Tk()
root.title("Pomodoro Timer Application")
root.config (padx=100, pady=50, bg="#f7f5dd")

Definiera en etikettwidget som visar texten som Timer. Ställ in dess teckensnittsfärg, bakgrundsfärg och teckensnittsstil. Använd Grid layout manager för att organisera elementen i programmet. Placera titeletiketten i den första raden och den andra kolumnen.

title_label = Etikett (text="Timer", fg='#A020F0', bg="#f7f5dd", typsnitt=("Arial", 50))
title_label.grid (kolumn=1, rad=0)

Definiera en duk med en bredd och höjd på 200x224 pixlar. Ställ in kanttjockleken på noll. Använd PhotoImage-widgeten för att visa bilden av en tomat på en duk. Använd create_image() sätt att infoga bilden på duken.

Använd skapa_text() metod för att skapa tidstexten i mm: ss formatera. Ställ in bredd, höjd, text, färg och teckensnitt för nedräkningstiden. Placera detta i den andra raden och den andra kolumnen i rutnätet.

canvas = Canvas (bredd=200, höjd=224, highlightthickness=0)
tomato_img = Fotobild (fil="tomato.png")
canvas.create_image(100, 112, image=tomato_img)
timer_text = canvas.create_text(100, 130, text="00:00", fyll="vit", typsnitt=("Arial", 35, "djärv"))
canvas.grid (kolumn=1, rad=1)

Definiera två knappar, startknapp, och Återställningsknapp. Ställ in texten den ska visa, ingen ram, funktionen den ska köra när den klickas, bakgrundsfärgen och typsnittsstilarna. Placera Start-knappen i den första kolumnen, andra raden och Reset-knappen i samma kolumn, tredje raden.

start_button = Knapp (text="Start", highlightthickness=0, kommando=starttimer, bg="#e7305b", typsnitt=("arial", 15, "djärv"))
start_button.grid (kolumn=0, rad=2)

reset_button = Knapp (text="Återställa", highlightthickness=0, kommando = reset_timer, bg="#e7305b", typsnitt=("arial", 15, "djärv"))
reset_button.grid (kolumn=2, rad=2)

Skapa en etikett som initialt visar bockarna som inga. Ställ in teckensnittsfärg, bakgrundsfärg och typsnittsstilar. Placera den i den andra kolumnen och fjärde raden, under knapparna i mitten.

De mainloop() funktionen säger åt Python att köra Tkinter-händelsslingan och lyssna efter händelser tills du stänger fönstret.

check_marks = Etikett (text="", fg='#00FF00', bg="#f7f5dd", typsnitt=("arial", 25, "djärv"))
check_marks.grid (kolumn=1, rad=3)

root.mainloop()

Sätt ihop all kod och prova Pomodoro Timer-applikationen.

Exempel på utdata från Pomodoro Timer-appen

När du kör det här programmet ser du ett fönster med titeln "Timer" och en nedräkningstimer inställd på noll. När du klickar på Start-knappen ändras titeln till "Arbete", och timern börjar räkna ned.

Efter exakt 25 minuter visas bocken och applikationen startar den korta paustimern på fem minuter.

Efter fyra Pomodoro-cykler sätts Long Break-timern på plats i 20 minuter. När tiden är över börjar arbetstimern igen.

Applikationer du kan bygga med Math och Tkinter Module

Det finns en uppsjö av applikationer du kan bygga med hjälp av Tkinter och Math-modulen. Nybörjare kan utforska plattformen genom att bygga en miniräknare. Kalkylatorn kan vara av olika slag, inklusive aritmetisk, geometrisk, grafisk och finansiell. Du kan skapa mattekort och matteproblemgeneratorer som en användare kan lösa.

En talsystemomvandlare, trigonometri och statistikverktygslåda kan visa sig vara användbar för att öva matematik på ett enklare och roligt sätt.