Tkinter: Il posizionamento degli oggetti Riga/Colonna. (con sorgente)

Tkinter

@federico. Tkinter è di fatto il “pacchetto” GUI (Graphical User Interface) standard di Python. Tkinter non è l’unico toolkit Gui-Programming per Python. E’ comunque il più usato. Cameron Laird chiama la decisione annuale di manutenere TkInter “una delle tradizioni più elementari del mondo Python”.

Il modulo Tkinter (“Tk interface”) è quindi  l’interfaccia Python standard per il toolkit Tk GUI di Scriptics precedentemente sviluppato da Sun Labs.

Sia Tk che Tkinter sono disponibili sulla maggior parte delle piattaforme Unix,  GNU Linux  così come su sistemi Windows e Macintosh. A partire dalla versione 8.0

Tkinter è costituito da un certo numero di moduli. L’interfaccia di Tk è fornita da un modulo chiamato _tkinter. Questo modulo contiene l’interfaccia di basso livello per Tk, e non dovrebbe mai essere usato direttamente dai programmatori. Di solito è una libreria condivisa (o DLL), ma in alcuni casi potrebbe essere collegata staticamente con l’interprete Python.

L’interfaccia pubblica è fornita attraverso una serie di moduli Python. Il modulo di interfaccia più importante è il modulo Tkinter stesso. Per usare Tkinter, tutto quello che dovete fare è importare il modulo Tkinter:

from Tkinter import *

della serie “il mio primo .py”.

#! /usr/bin/python3

#import tkinter as tk #per finestra

from tkinter import *
finestra = Tk()

finestra.resizable(True,True)
finestra.title(“www.aiutocomputerhelp.it Il mio primo .py”)
finestra.geometry(‘400×300’)

rows = 0
while rows < 20:
finestra.rowconfigure(rows, weight=1)
finestra.columnconfigure(rows,weight=1)
rows += 1

Label(finestra, text=”Pinto qualcosa”).grid(row=1, column=2)

finestra.mainloop()



Tkinter e la gestione delle righe e colonne

Ma veniamo a @federico. In una mail mi chiedeva del  perchè anche rispettando righe/colonne , gli oggetti che poneva in  Tk() , non rispettavano le colonne.

@federico , guarda questa immagine e se vuoi scaricati il sorgente….Ho inserito anche un po di parametri per personalizzare gli oggetti.

"<yoastmark



Scarica il sorgente del programma

Immagina di avere d’avanti a te un foglio di calcolo.
Ogni elemento che posizionate su questo foglio di calcolo farà in modo che la colonna che lo contiene avrà la sua grandezza massima.
Se inseriamo in posizione 1.1 un elemento lungo 5 e in posizione 1.2 un elemento lungo 20 e in terza riga 1.3 un elemento lungo 3, la colonna 1 avrà larghezza 20 per tutte le righe !

Pui utilizzare columnspan e i frame per avere un più efficace controllo delle posizioni degli oggetto. In questo caso con columnspan ho -unito- la colonna 2 e la colonna 3 nella riga 6!

scro1 = scrolledtext.ScrolledText(finestra,width=60,height=10,font=”Helvetica 8 bold”)
scro1.grid(row=6, column=2, columnspan=2)

Non ho utilizzato  anche rowspan dato che dopo non vi erano altri oggetti.

 

Altro esempio

 

Tkinter righe e colonne
Tkinter righe e colonne

 

 

label 1 = row=1, column=1

label 2 = row=2, column=1

Input 1 = row=1, column=2

Input 2 = row=2 , column=2

Button = row = 3 , column = 1 ,   columnspan=2

Immagine = row 1, colomn = 3 , columnspan = 2 , rowspan = 3 

Quindi, quello che posso consigliarti è quello di buttare prima su carta il disegno della tua finestra e poi riportarla in Python. In questo modo, impiegherai pochissimo tempo  a costruirla e farai un lavoro pulito e sicuramente accurato.

G.P.