2012-02-19 51 views
27

Estoy aprendiendo Python, y me gustaría usarlo para crear una aplicación GUI simple, y dado que Tkinter ya está incorporado (y es muy fácil de usar), me gustaría usarlo para compilar mi aplicación.¿Tiene tkinter un widget de tabla?

Me gustaría hacer una aplicación que muestre una tabla que contiene algunos datos que he cargado desde mi base de datos.

He buscado table pero no he podido encontrar ningún ejemplo y/o documentación con respecto a un componente Tkinter table.

¿Tiene Tkinter un componente table incorporado? Si no es así, ¿qué podría/debería usar en su lugar?

+0

https://github.com/clarenceangel/tkinterstuff cosas fáciles perfectas para principiantes hacen exactamente lo que quieres. – Mike

Respuesta

17

Tkinter no tiene un widget de tabla incorporado. Lo más cercano que puede usar es un Listbox o un Treeview del subpaquete de tkinter ttk.

Sin embargo, puede usar tktable, que es un contenedor alrededor del widget Tcl/TkTkTable, escrito por Guilherme Polo. Nota: para utilizar esta biblioteca contenedora, primero debe haber instalado la biblioteca original de Tk TkTable; de lo contrario, obtendrá un "error de importación".

16

Si la tabla es de solo lectura y está utilizando una versión suficientemente moderna de Tkinter, puede usar el widget ttk.Treeview.

También puede crear fácilmente una cuadrícula de widgets Entry o Label. Vea esta respuesta para un ejemplo: https://stackoverflow.com/a/11049650/7432

+3

gran ejemplo [aquí] (http://www.daniweb.com/software-development/python/threads/350266/creating-table-in-python) –

11

Puede usar tkintertable. Vea here cómo comenzar a usarlo.

+2

Esto ahora redirige a https://github.com/dmnfarrell/ tkintertable donde dice que es ** solo para Python 2 ** – handle

+1

Freewind: aunque 'tkintertable' está escrito para Python 2, parece ser Python puro, por lo que, dado que es de código abierto, actualizarlo para que funcione en Python 3 podría no serlo ser muy difícil – martineau

+0

si usa pandas, esta podría ser una buena opción: https://github.com/dmnfarrell/pandastable – srf

17

Puede usar la cuadrícula de Tkinter.

Para crear una sencilla tabla de Excel-como:

from Tkinter import * 

root = Tk() 

height = 5 
width = 5 
for i in range(height): #Rows 
    for j in range(width): #Columns 
     b = Entry(root, text="") 
     b.grid(row=i, column=j) 

mainloop() 

se puede agarrar los datos accediendo a los hijos de la red y obtener los valores a partir de ahí.

+0

Creo que olvidó agregar un 'b.pack()'. –

0

https://github.com/clarenceangel/tkinterstuff hice esto pero no soy profesional. Sin embargo, crea una tabla y la devuelve como un marco que puede agregar a un marco o raíz. Le proporciona un csv con cualquier cantidad de filas y columnas siempre que las columnas estén parejas en cada fila del curso.

Cuestiones relacionadas