2010-11-13 52 views
32

如何将填充添加到tkinter窗口,而不用tkinter居中小部件? 我想:仅在一侧添加填充到tkinter小部件

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) 

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) 

我想只在标签的顶部30像素填充。

回答

93

填充选项padxpady可以采用二元组,它们表示左/右和顶部/底部填充。

下面是一个例子:

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

有趣。这种行为在任何地方都是半官方描述的?我最喜欢的两个tk资源,[effbot](http://effbot.org/tkinterbook/grid.htm)和[New Mexico Tech](http://infohost.nmt.edu/tcc/help/pubs/tkinter/web /grid.html),不要给出任何提示,即填充可以以这种方式不均匀。秘密无证行为? – Kevin 2017-08-25 19:27:04

+0

@Kevin:tkinter只是一个包含tk库的嵌入式tcl解释器的pythonic包装。 tk的规范文档提到了这个特性。以下是参考资料:http://tcl.tk/man/tcl8.5/TkCmd/grid.htm#M16 – 2017-08-25 20:11:48