I lettori come te aiutano a sostenere MUO. Quando effettui un acquisto utilizzando i link sul nostro sito, potremmo guadagnare una commissione di affiliazione. Per saperne di più.

Costruire un calendario è un ottimo modo per imparare a creare applicazioni GUI con il modulo Tkinter di Python. Puoi utilizzare questa applicazione per gestire e pianificare gli eventi in anticipo.

Andando oltre, puoi estendere l'app per tenere traccia delle riunioni imminenti e impostare promemoria. Potresti persino introdurre la collaborazione con i calendari di altri utenti per evitare conflitti di programmazione.

Tutto inizia con lo scheletro di base di un'app Calendario GUI.

I moduli Calendar, Tkinter e DateTime

Per creare il calendario della GUI, utilizzerai il modulo Calendar, Tkinter e DateTime. IL Modulo Calendario viene fornito con Python e ti consente di eseguire azioni relative a data, mese e calendario.

Tkinter ti consente di creare applicazioni desktop. Offre una varietà di widget, librerie utili, oggetti canvas e parser HTML/XML/PDF. Per creare un'applicazione GUI tutto ciò che devi fare è:

instagram viewer
  1. Importa la libreria.
  2. Crea una finestra.
  3. Aggiungi widget a quella finestra.
  4. Chiama il ciclo di eventi principale per eseguire azioni basate sull'interazione dell'utente.

Per installare Tkinter nel tuo sistema, apri un terminale ed esegui:

pip installa tkinter

Il modulo DateTime è un altro integrato. Offre diverse classi che possono gestire date, orari e intervalli di tempo. Con questo modulo, puoi creare un programmatore di eventi, una sveglia, un calcolatore di date e un'applicazione per il fuso orario.

Come costruire un calendario GUI usando Python

Puoi trovare il codice sorgente del Calendario GUI usando Python in questo Deposito GitHub.

Inizia importando il modulo Tkinter, Calendar e DateTime. Definire una funzione, stampaCalendario. Usa il Ottenere() metodo sulla Spinbox (definito più avanti nel codice) per estrarre il mese e l'anno che l'utente ha scelto. Passa questi valori al modulo calendario per ottenere un calendario di testo formattato che rappresenta l'anno e il mese specificati. Questo testo rappresenta una semplice griglia monospazio, con i giorni organizzati in settimane che iniziano il lunedì.

Cancella tutti i dati esistenti dallo schermo. 1.0 indica l'inizio del campo, e FINE indica la fine del campo. Infine, inserisci il calendario generato in precedenza e visualizzalo sullo schermo.

da tkinter importare *
importare calendario
da appuntamento importare data

defstampaCalendario():
mese = int (month_box.get())
anno = int (year_box.get())
output_calendar = calendar.month (anno, mese)
campo_calendario.delete(1.0, 'FINE')
campo_calendario.insert('FINE', output_calendar)

Definire una funzione, Ripristina. Elimina i contenuti sullo schermo e imposta il mese e l'anno al presente e usa il config() metodo per visualizzarlo sullo schermo.

defRipristina():
campo_calendario.delete(1.0, 'FINE')
mese_var.set (mese_corrente)
year_var.set (anno_corrente)
casella_mese.config (variabiletesto=var_mese)
year_box.config (textvariable=year_var)

Definire una funzione, chiudere per distruggere la visualizzazione della finestra ed uscire dal programma.

defvicino():
guiWindow.destroy()

Inizializza l'istanza Tkinter e visualizza la finestra principale. Impostare il titolo, le dimensioni in pixel e disabilitarne il ridimensionamento mantenendo i parametri a 0.

Se __nome__ == "__principale__":
guiWindow = Tk()
guiWindow.title("Calendario GUI")
guiWindow.geometry('500x550')
guiWindow.ridimensionabile(0, 0)

Definire quattro riquadri per il titolo dell'intestazione, l'inserimento del mese e dell'anno, il display ei pulsanti. Svolge la funzione di un contenitore, dirigendo il posizionamento di altri widget. Organizza il layout e fornisce il riempimento per questi widget utilizzando sezioni rettangolari sullo schermo.

Organizzare i frame in blocchi prima di posizionarli nella finestra gui utilizzando il file pacchetto() metodo. Imposta il valore di expand su true per consentire al widget di ridimensionarsi ed espandersi nello spazio disponibile. Impostare il riempire attributo a entrambi per consentire al widget di espandersi per occupare l'intera finestra nelle direzioni x e y.

 header_frame = Cornice (guiWindow)
entry_frame = Cornice (guiWindow)
result_frame = Cornice (guiWindow)
button_frame = Cornice (guiWindow)

header_frame.pack (expand=VERO, riempire="Entrambi")
entry_frame.pack (expand=VERO, riempire="Entrambi")
result_frame.pack (expand=VERO, riempire="Entrambi")
button_frame.pack (expand=VERO, riempire="Entrambi")

Specificare tre etichette per l'intestazione, il mese e l'anno. Imposta la finestra principale in cui desideri inserirla, il testo che visualizzerà, gli stili del carattere insieme al colore del carattere. Imballare e posizionare le etichette in una posizione appropriata. Socio IntVar() con il entry_frame per impostare e ricevere dati interi.

 header_label = Etichetta (header_frame, text="CALENDARIO",
carattere=('ariale', '45', 'grassetto'), fg="#A020F0")

header_label.pack (expand=VERO, riempire="Entrambi")

month_label = Etichetta (entry_frame, text="Mese:",
carattere=("ariale", "20", "grassetto"), fg="#000000")

year_label = Etichetta (entry_frame, text="Anno:",
carattere=("ariale", "20", "grassetto"), fg="#000000")

etichetta_mese.luogo (x=30, y=0)
etichetta_anno.luogo (x=275, y=0)
month_var = IntVar (entry_frame)
year_var = IntVar (entry_frame)

Ottieni il mese e l'anno correnti e impostalo sulla variabile IntVar(). Utilizzare il widget Spinbox per specificare un intervallo di valori per l'utente. Imposta l'intervallo di valori che la Spinbox conterrà, la larghezza, il valore corrente che dovrebbe contenere e gli stili del carattere. Posizionare le scatole in modo appropriato.

 mese_corrente = data.oggi().mese
anno_corrente = data.oggi().anno
mese_var.set (mese_corrente)
year_var.set (anno_corrente)

month_box = Spinbox (entry_frame, from_=1, a=12, larghezza="10",
textvariable=month_var, font=('ariale','15'))

year_box = Spinbox (entry_frame, from_=0000, a=3000, larghezza="10",
textvariable=year_var, font=('ariale','15'))

casella_mese.luogo (x=130, y=5)
casella_anno.luogo (x=360, y=5)

Dichiara un campo di testo e impostane la finestra principale, la larghezza, l'altezza, lo stile del carattere, lo stile dell'animazione 3D e la larghezza del bordo. Organizza il widget di testo e dichiara tre pulsanti per visualizzare, reimpostare e chiudere la finestra. I pulsanti contengono una proprietà background-color aggiuntiva e una proprietà command.

Usando la proprietà del comando, puoi impostare la funzione che dovrebbe eseguire una volta cliccato. Posiziona i pulsanti in un'unica riga con ampio spazio tra ciascuno di essi.

 calendar_field = Testo (result_frame, width=20, altezza=8,
carattere=("Corriere", "18"), rilievo=CRESTA, larghezza bordo=2)

campo_calendario.pack()

display_button = Pulsante (button_frame, text="SCHERMO", bg="#A020F0",
fg="#E0FFFF", comando=printCalendar, font=('ariale', '15'))

reset_button = Pulsante (button_frame, text="RIPRISTINA", bg="#A020F0",
fg="#E0FFFF", comando=reimposta, carattere=('ariale','15'))

close_button = Pulsante (button_frame, text="VICINO", bg="#A020F0",
fg="#E0FFFF", comando=chiudi, carattere=('ariale','15'))

display_button.place (x=55, y=0)
reset_button.place (x=210, y=0)
close_button.place (x=350, y=0)

IL ciclo principale() La funzione dice a Python di eseguire il ciclo di eventi di Tkinter e di ascoltare gli eventi (come la pressione di un pulsante) finché non chiudi la finestra.

 guiWindow.mainloop()

Metti insieme tutto il codice per vedere il tuo calendario GUI in azione.

Esempio di output del calendario della GUI

Durante l'esecuzione del programma sopra il programma visualizza una finestra con il mese e la data correnti. Il pulsante Reset mostra la stessa schermata quando viene cliccato.

Impostando il mese su 3 e l'anno su 2000, il programma visualizza il calendario di marzo 2000. Premendo il pulsante Chiudi, il programma distrugge la finestra e ne interrompe l'esecuzione.

Affronta alcuni progetti GUI per principianti utilizzando Python

Creare applicazioni GUI non è mai stato così facile. Il modulo Tkinter di Python fornisce molti widget utili che puoi personalizzare completamente con pochissimo codice. Insieme a questo, puoi accedere a gestori di layout come pack, grid e place per posizionare gli elementi secondo i tuoi desideri.

Puoi creare un gioco di test di battitura, una tavolozza di colori, un convertitore di valuta o una calcolatrice per iniziare. Queste applicazioni sono divertenti da costruire e svilupperanno facilmente le tue capacità di programmazione orientata agli oggetti.