Vytvoření kalendáře je skvělý způsob, jak se naučit vytvářet GUI aplikace pomocí modulu Tkinter v Pythonu. Tuto aplikaci můžete použít ke správě a plánování událostí předem.
Když to vezmete dále, můžete aplikaci rozšířit o sledování nadcházejících schůzek a nastavení připomenutí. Můžete dokonce zavést spolupráci s kalendáři ostatních uživatelů, abyste se vyhnuli konfliktům v plánování.
Vše začíná základní kostrou aplikace GUI Calendar.
Moduly Calendar, Tkinter a DateTime
K sestavení GUI kalendáře použijete Calendar, Tkinter a DateTime Module. The Modul kalendáře přichází s Pythonem a umožňuje provádět akce související s datem, měsícem a kalendářem.
Tkinter vám umožňuje vytvářet desktopové aplikace. Nabízí řadu widgetů, užitečné knihovny, objekty plátna a analyzátory HTML/XML/PDF. K vytvoření GUI aplikace vše, co musíte udělat, je:
- Importujte knihovnu.
- Vytvořte okno.
- Přidejte do tohoto okna widgety.
- Volání hlavní smyčky událostí pro provádění akcí na základě interakce uživatele.
Chcete-li nainstalovat Tkinter do vašeho systému, otevřete terminál a spusťte:
pip nainstalovat tkinter
Modul DateTime je další modul, který je vestavěný. Nabízí několik tříd, které si poradí s daty, časy a časovými intervaly. Pomocí tohoto modulu můžete vytvořit plánovač událostí, budík, kalkulačku data a aplikaci časového pásma.
Jak vytvořit GUI kalendář pomocí Pythonu
Zdrojový kód GUI kalendáře pomocí Pythonu najdete v tomto úložiště GitHub.
Začněte importem modulu Tkinter, Calendar a DateTime. Definujte funkci, tiskový kalendář. Použijte dostat() metoda na Spinbox (definovaná dále v kódu) k extrahování měsíce a roku, který si uživatel zvolil. Předejte tyto hodnoty modulu kalendáře, abyste získali formátovaný textový kalendář představující zadaný rok a měsíc. Tento text představuje jednoduchou monoprostorovou mřížku se dny uspořádanými v týdnech počínaje pondělím.
Vymažte všechna existující data z obrazovky. 1.0 označuje začátek pole a konec označuje konec pole. Nakonec vložte dříve vygenerovaný kalendář a zobrazte jej na obrazovce.
z tkinter import *
import kalendář
z čas schůzky import datum
deftiskový kalendář():
měsíc = int (month_box.get())
rok = int (year_box.get())
output_calendar = calendar.month (rok, měsíc)
calendar_field.delete(1.0, 'konec')
kalendář_pole.vložit('konec', výstupní_kalendář)
Definujte funkci, resetovat. Smažte obsah na obrazovce a nastavte měsíc a rok na současnost a použijte config() způsob, jak jej zobrazit na obrazovce.
defresetovat():
calendar_field.delete(1.0, 'konec')
month_var.set (aktuální_měsíc)
year_var.set (aktuální_rok)
month_box.config (textvariable=month_var)
year_box.config (textvariable=year_var)
Definujte funkci, zavřete, abyste zničili zobrazení okna, a ukončete program.
defzavřít():
guiWindow.destroy()
Inicializujte instanci Tkinter a zobrazte kořenové okno. Nastavte nadpis, rozměry v pixelech a zakažte jeho změnu velikosti ponecháním parametrů na 0.
-li __jméno__ == "__hlavní__":
guiWindow = Tk()
guiWindow.title("Kalendář GUI")
guiWindow.geometry('500x550')
guiWindow.sizeable(0, 0)
Definujte čtyři rámečky pro nadpis záhlaví, měsíc a rok, displej a tlačítka. Plní funkci kontejneru, který řídí umístění dalších widgetů. Uspořádá rozvržení a poskytuje výplň pro tyto widgety pomocí obdélníkových částí na obrazovce.
Uspořádejte rámečky do bloků, než je umístíte do guiwindow pomocí balíček() metoda. Nastavením hodnoty expand na true umožníte widgetu změnit velikost a rozbalit se v dostupném prostoru. Nastav vyplnit atribut k oběma, aby se widget mohl rozbalit tak, aby zabíral celé okno ve směru x a y.
header_frame = Rám (guiWindow)
entry_frame = Rám (guiWindow)
result_frame = Frame (guiWindow)
button_frame = Rám (guiWindow)
header_frame.pack (rozbalit=Skutečný, vyplnit="oba")
entry_frame.pack (rozbalit=Skutečný, vyplnit="oba")
result_frame.pack (rozbalit=Skutečný, vyplnit="oba")
button_frame.pack (expand=Skutečný, vyplnit="oba")
Zadejte tři štítky pro záhlaví, měsíc a rok. Nastavte rodičovské okno, do kterého jej chcete umístit, text, který bude zobrazovat, styly písma spolu s barvou písma. Zabalte a umístěte štítky na vhodné místo. Spolupracovník IntVar() s vstupní_rámec pro nastavení a příjem celočíselných dat.
header_label = Štítek (header_frame, text="KALENDÁŘ",
font=('arial', '45', 'tučně'), fg="#A020F0")header_label.pack (expand=Skutečný, vyplnit="oba")
month_label = Štítek (vstupní_rámec, text="Měsíc:",
font=("arial", "20", "tučně"), fg="#000000")year_label = Štítek (vstupní_rámec, text="Rok:",
font=("arial", "20", "tučně"), fg="#000000")
month_label.place (x=30, y=0)
year_label.place (x=275, y=0)
month_var = IntVar (vstupní_rámec)
year_var = IntVar (vstupní_rámec)
Získejte aktuální měsíc, rok a nastavte jej na proměnnou IntVar(). Pomocí widgetu Spinbox můžete uživateli zadat rozsah hodnot. Nastavte rozsah hodnot, které bude Spinbox obsahovat, šířku, aktuální hodnotu, kterou by měl obsahovat, a styly písma. Umístěte krabice vhodně.
aktuální_měsíc = datum.dnes().měsíc
aktuální_rok = datum.dnes().rok
month_var.set (aktuální_měsíc)
year_var.set (aktuální_rok)month_box = Spinbox (vstupní_rámec, from_=1, to=12, šířka="10",
textvariable=month_var, font=('arial','15'))year_box = Spinbox (vstupní_rámec, from_=0000, to=3000, šířka="10",
textvariable=year_var, font=('arial','15'))
moon_box.place (x=130, y=5)
year_box.place (x=360, y=5)
Deklarujte textové pole a nastavte jeho nadřazené okno, šířku, výšku, styl písma, styl 3D animace a šířku ohraničení. Uspořádejte textový widget a deklarujte tři tlačítka pro zobrazení, resetování a zavření okna. Tlačítka obsahují další vlastnost barva pozadí a vlastnost příkazu.
Pomocí vlastnosti command můžete nastavit funkci, kterou má provést po kliknutí. Umístěte tlačítka do jedné řady s dostatečným prostorem mezi každým z nich.
calendar_field = Text (výsledkový_rámec, šířka=20, výška=8,
font=("kurýr", "18"), reliéf=HŘEBEN, šířka okraje=2)calendar_field.pack()
display_button = Tlačítko (button_frame, text="ZOBRAZIT", bg="#A020F0",
fg="#E0FFFF", command=printCalendar, font=('arial', '15'))reset_button = Tlačítko (button_frame, text="RESETOVAT", bg="#A020F0",
fg="#E0FFFF", command=reset, font=('arial','15'))close_button = Tlačítko (button_frame, text="ZAVŘÍT", bg="#A020F0",
fg="#E0FFFF", command=close, font=('arial','15'))
display_button.place (x=55, y=0)
reset_button.place (x=210, y=0)
close_button.place (x=350, y=0)
The mainloop() Funkce říká Pythonu, aby spustil smyčku událostí Tkinter a poslouchal události (jako je stisknutí tlačítka), dokud nezavřete okno.
guiWindow.mainloop()
Dejte celý kód dohromady, abyste viděli svůj kalendář GUI v akci.
Ukázkový výstup kalendáře GUI
Při spuštění programu nad programem se zobrazí okno s aktuálním měsícem a datem. Po kliknutí na tlačítko Reset se zobrazí stejná obrazovka.
Při nastavení měsíce na 3 a roku na 2000 program zobrazí kalendář na březen 2000. Po stisknutí tlačítka Zavřít program zničí okno a zastaví jeho provádění.
Pusťte se do některých projektů s GUI pro začátečníky pomocí Pythonu
Vytváření GUI aplikací nebylo nikdy tak snazší. Modul Tkinter v Pythonu poskytuje mnoho užitečných widgetů, které si můžete plně přizpůsobit s velmi malým množstvím kódu. Spolu s tím získáte přístup ke správcům rozložení, jako je balení, mřížka a umístění prvků podle vašeho přání.
Chcete-li začít, můžete sestavit hru na testování psaní, barevnou paletu, převodník měn nebo kalkulačku. Tyto aplikace je zábavné vytvářet a snadno rozvinou vaše znalosti objektově orientovaného programování.