Ett nytt Python TkInter program! | Dev Blog #1 > WRITe #1

Tjena-hopp, Tobbe här.

Nu är det äntligen dags för Dev Blog #1! Det har i och för sig bara gått några dagar sen #0 … men ändå! Dagens agenda är ett Python-program gjort med TkInter.

Boken om Cirus och Lucas

För de som inte vet (det vill säga cirka 20 % av de som läser detta, då praktiskt taget de enda som slänger en blick på denna artikel är mina nära vänner, som redan vet) så skriver jag för närvarande en bok. Den heter Boken om Cirus och Lucas. Det är en sci-fi-bok som handlar om – du gissade (troligtvis) rätt – Cirus och Lucas. Mer än så avslöjar jag inte … förrän nästa Dev Blog kommer ut! Haha, you stepped right into my trap! Nu är du tvungen att läsa nästa, med förutsättningen av att du är någorlunda intresserad… Vilket jag hoppas att du är!

WRITe i Python

Tillbaka till ämnet: WRITe. Eftersom jag skriver en bok, vill jag hålla koll på antalet ord jag har skrivit, vilket detta program är tänkt att göra. Jag skissade upp hur det på ett ungefär skulle se ut. Resultatet:

EXCEL P6lCEzfvGb

Det är inte riktigt en skiss, men varför skulle jag rita upp en skiss, när jag kan få det perfekt? Idén är helt enkelt ett Excel-inspirerat kalkylblad. De olika kolumnerna ska innehålla dagens datum, totala antalet ord, och den sista, Ökning, ska vara autogenererad, baserad på ordantalet. Detta räknas lätt ut genom att ta dagens ordantal och subtrahera gårdagens ordantal.

Så, nu har vi ett koncept. Nu är det bara kvar att göra programmet…! Men det är lättare sagt än gjort. Först måste vi välja språk; Python. Varför Python? Kul att du frågar! Python, känt för att vara ganska slött (i jämförelse med exempelvis C, C++, Rust, Java eller alla andra main-stream språk), är dock väldigt simpelt och light-weight.

Python

Jag gjorde bedömningen, och kom fram till att detta program inte blir något (betydligt) slöare i fall jag använder Python, då det är ohyggligt simpelt. Jag hade lika gärna kunna göra det med penna eller papper; det är en helt annan grej om man ska göra ett robust, snabbt operativsystem. Då använder man oftast C, C++, C# och Assembly, som är bokstavligen byggda för det. Men vi är ännu inte klara med planeringen… TkInter är ett bibliotek inbyggt i Python, gjort för att skapa fönster. ”Vad menar du med detta, Tobbe?” Jo, detta…:

Exempel på TkInter program
Med TkInter

… i stället för detta:

Program utan TkInter
Utan TkInter

Som ni kan se, så är TkInter-program inte bara snyggare, utan även svårare att göra fel i. Så, TkInter it is! Nu kan vi började skriva kod. Hädanefter antar jag att du är någorlunda bekant med programmering i allmänhet. Koden är kommenterad, dock på engelska.

Jag satte i hop (som jag inte tycker skrivs ”ihop”) ett program:

 

(Ett stort tack till Bryan Oakley, vars kalkylbladskod jag baserade mitt program på.) Denna kod genererar detta program:

python MAaiOWMyKN

Inget komplicerat, inget speciellt; bara en prototyp. Programspråket är engelska, då (nästan) all kod jag skriver är på engelska. Jag kommer troligtvis lägga till en språkknapp, som kan byta mellan båda. Svenska namnet får väl vara SKRIv! Haha! Fattar du? Det hoppas jag… Nu har vi i alla fall ett kalkylblad, med tre kolumnrubriker. Den översta raden går inte att redigera, och har förinställd text, vilket åstadkoms med följande kod:


Resterande rutor accepterar bara siffror, med hjälp av validatecommand-attributen:

Programmets källkod finns på GitHub. Nu har vi programmets grund – men vi är ännu inte klara! I nästa WRITe-inlägg kommer vi att lägga till en knapp som lägger till nya rader, en knapp som tar bort rader, och en knapp som sparar datan. Del två finns nedan … när jag har skrivit den, vilket troligtvis är om några dagar. Alla Dev-Blog-inlägg finns här, och alla WRITe-inlägg här.

Men det var allt för mig, vi ses nästa gång!

Tobbe out.

Lämna en kommentar

Din e-postadress kommer inte publiceras.