2010-11-13 16 views
32

¿Cómo puedo agregar relleno a una ventana de tkinter, sin que tkinter centre el widget? me trataron:Agregar relleno a un widget de tkinter solo en un lado

self.canvas_l = Label(self.master, text="choose a color:", font="helvetica 12") 
self.canvas_l.grid(row=9, column=1, sticky=S, ipady=30) 

y

self.canvas_l = Label(self.master, text="choose a color:", font="helvetica 12") 
self.canvas_l.grid(row=9, column=1, rowspan=2, sticky=S, pady=30) 

Quiero relleno de 30px sólo en la parte superior de la etiqueta.

Respuesta

93

Las opciones de relleno padx y pady pueden tomar un 2-tupla que representan la izquierda/derecha y de arriba de relleno/inferior.

He aquí un ejemplo:

import tkinter as tk 

class MyApp(): 
    def __init__(self): 
     self.root = tk.Tk() 
     l1 = tk.Label(text="Hello") 
     l2 = tk.Label(text="World") 
     l1.grid(row=0, column=0, padx=(100, 10)) 
     l2.grid(row=1, column=0, padx=(10, 100)) 

app = MyApp() 
app.root.mainloop() 
+0

interesante. ¿Se describe este comportamiento en algún lugar semioficial? Mis dos recursos tk favoritos, [effbot] (http://effbot.org/tkinterbook/grid.htm) y [New Mexico Tech] (http://infohost.nmt.edu/tcc/help/pubs/tkinter/web /grid.html), no da ninguna pista de que el relleno puede ser desigual de esta manera. ¿Comportamiento secreto no documentado? – Kevin

+0

@Kevin: tkinter es simplemente un contenedor pitónico alrededor de un intérprete tcl integrado que incluye la biblioteca tk. Los documentos canónicos para tk mencionan esta característica. Aquí está la referencia: http://tcl.tk/man/tcl8.5/TkCmd/grid.htm#M16 –

Cuestiones relacionadas