'''
ARGOMENTI:

    - Grid
        Il "grid manager" e' il piu' flessibile tra i responsabili della 
        "geometria" in Tinker e puo' essere usato direttamente sulla finestra 
        principale.  

        Invece di utilizzare molti frame e', spesso, sufficiente inserire 
        tutti i widget in un unico contenitore (finestra principale)
        ed utilizzare il gestore della griglia per "sistemare" tutti gli 
        elementi desiderati. 

    - Opzione "sticky"
        I widget sono, in genere, centrati nelle loro celle. 
        L'opzione "sticky" permette di modificare questo 
        comportamento: sticky=N/S/E/W. (Nord, Sud, Est, Ovest)  
        Vedere esempio "checkbutton"

Nell'esempio verra' costruito un layout del seguente tipo:

         -----------------------------------
        | Riga 0 | Riga 0 | Riga 0          |
        | Col. 0 | Col. 1 | Col. 2          |
        |        |        |                 |
        |------------------                 |
        | Riga 1 | Riga 1 | Riga 0 > span 2 |              
        | Col. 0 | Col. 1 | Col. 2 > span 2 |           
        |        |        |                 |
        |-----------------------------------
        | Riga 2          | Riga 2 | Riga 2 |
        | Col. 0 > span 2 | Col. 2 | Col. 3 |
        |                 |        |        |
         -----------------------------------





    
'''
from tkinter import *

# Visualizza la versione di Python
# Ho avuto problemi con le diverse versioni
import sys
print(sys.version)


fin = Tk()
# Nessuna "geometry" per la finestra -> si adatta al contenuto 
fin.title("Applicazione")
# Evitare il ridimensionamento
fin.resizable(width=False, height=False)


# ------------------------------------------------- widget
# label
lbl1=Label(fin, text="Uno").grid(row=0, column=0)
lbl2=Label(fin, text="Due").grid(row=1, column=0)

# input
# se assegno grid(row=0, column=1) direttamente alla creazione
# non accetta il metodo ".insert()"". Questo vale per tutti i
# casi seguenti dove non è stato utilizzato il modo "diretto".
inp1=Entry(fin)
inp1.insert(END,"Default 1")
inp1.grid(row=0, column=1)
inp2=Entry(fin)
inp2.insert(END,"Default 2")
inp2.grid(row=1, column=1)

# text area
txt = Text(height=3, width=20)                  
txt.insert(INSERT, "Testo riga 1\n")
txt.insert(INSERT, "Testo riga 2\n")
txt.insert(INSERT, "Testo riga 2")
txt.grid(row=0, column=2, rowspan=2, columnspan=2)


# button
# le seguenti due righe di codice, inserite dopo il "check button"
# non visualizzano i "button"  --> VERIFICARE
btn1 = Button(text="Aggiungi").grid(row=2, column=2)      
btn2 = Button(text="Elimina").grid(row=2, column=3)

# check button
varCheck=0
chk = Checkbutton(text="Corsivo",variable=varCheck).grid(row=2, column=0,columnspan=2, sticky=W)


fin.mainloop()
