Python oferece várias opções para desenvolver uma GUI (Graphical User Interface). De todos os métodos de GUI, o Tkinter é o método mais comumente usado. É uma interface Python padrão para o kit de ferramentas Tk GUI fornecido com Python. Python com Tkinter é a maneira mais rápida e fácil de criar aplicativos GUI. Criar uma GUI usando o Tkinter é uma tarefa fácil.

Observação: para obter mais informações, consulte Python GUI - tkinter

Criando tabelas usando o Tkinter

Uma tabela é útil para exibir dados na forma de linhas e colunas. Infelizmente, o Tkinter não fornece um widget de Tabela para criar uma tabela. Mas podemos criar uma tabela usando métodos alternativos. Por exemplo, podemos fazer uma tabela exibindo repetidamente os widgets de entrada na forma de linhas e colunas.

Para criar uma tabela com cinco linhas e quatro colunas, podemos usar dois loops for como:

para i no intervalo (5):
    para j no intervalo (4):

Dentro desses loops, temos que criar um widget Entry criando um objeto da classe Entry, como:



e = entrada (raiz, largura = 20, fg = 'azul', fonte = ('Arial', 16, 'negrito')

Agora, precisamos de lógica para colocar esse widget de entrada em linhas e colunas. Isso pode ser feito usando um grid()método para o qual podemos passar posições de linha e coluna, como:

# aqui i e j indicam
# posições de linha e coluna
e.grid (linha = i, coluna = j)

Podemos inserir dados no widget Entry usando o insert()método, como:

e.inserir (END, dados)

Aqui, 'END' indica que os dados continuam a ser acrescentados no final dos dados anteriores no widget de entrada.

Esta é a lógica usada no programa fornecido a seguir, usando os dados que vêm de uma lista. Pegamos uma lista contendo 5 tuplas e cada tupla contém quatro valores que indicam id do aluno, nome, cidade e idade.

Portanto, teremos uma tabela com 5 linhas e 4 colunas em cada linha. Este programa também pode ser aplicado em dados provenientes de um banco de dados para exibir todos os dados na forma de uma tabela.

Código fonte:

   
from tkinter import *
  
  
class Table: 
      
    def __init__(self,root): 
        
        for i in range(total_rows): 
            for j in range(total_columns): 
                        self.e = Entry(root, width=20, fg='blue', 
                               font=('Arial',16,'bold')) 
                        self.e.grid(row=i, column=j) 
                self.e.insert(END, lst[i][j]) 
lst = [(1,'Raj','Mumbai',19), 
       (2,'Aaryan','Pune',18), 
       (3,'Vaishnavi','Mumbai',20), 
       (4,'Rachna','Mumbai',21), 
       (5,'Shubham','Delhi',21)] 
   
total_rows = len(lst) 
total_columns = len(lst[0]) 
   
root = Tk() 
t = Table(root) 
root.mainloop() 

Resultado:
python-table-using-tkinter