2010-11-13 53 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