Python 仅在一侧向tkinter小部件添加填充

Python 仅在一侧向tkinter小部件添加填充,python,tkinter,padding,Python,Tkinter,Padding,如果tkinter没有将小部件居中,如何向tkinter窗口添加填充? 我试过: 及 我只想在标签顶部填充30px。网格和pack方法的填充选项padx和pady可以采用表示左/右和上/下填充的2元组 下面是一个例子: import tkinter as tk class MyApp(): def __init__(self): self.root = tk.Tk() l1 = tk.Label(self.root, text="Hello")

如果tkinter没有将小部件居中,如何向tkinter窗口添加填充? 我试过:


我只想在标签顶部填充30px。

网格
pack
方法的填充选项
padx
pady
可以采用表示左/右和上/下填充的2元组

下面是一个例子:

import tkinter as tk

class MyApp():
    def __init__(self):
        self.root = tk.Tk()
        l1 = tk.Label(self.root, text="Hello")
        l2 = tk.Label(self.root, 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()

有多种方法可以使用
place
grid
甚至
pack
方法

示例代码:

from tkinter import *
root = Tk()

l = Label(root, text="hello" )
l.pack(padx=6, pady=4) # where padx and pady represent the x and y axis respectively
# well you can also use side=LEFT inside the pack method of the label widget.
要根据列和行放置小部件,请使用网格方法:

but = Button(root, text="hello" )
but.grid(row=0, column=1)

这样,您就可以将顶部的填充称为10,下面的填充称为0。

很有趣。这种行为在任何地方都是半官方的吗?我最喜欢的两个tk资源,以及,不要给出任何暗示,填充可以以这种方式不均匀。秘密的未记录行为?@Kevin:tkinter只是一个包含tk库的嵌入式tcl解释器的Python包装器。tk的规范文档提到了这个特性。参考资料如下:在网格padx/pady上工作,但不在框架上工作。可能还有更多的例外exists@DanielBraun:它也适用于框架。Tkinter不在乎它是什么类型的小部件。@Giova:是的,元组版本只适用于
padx
pady
选项的
grid
pack
。一些小部件的
padx
pady
选项不同。您不能将其用于小部件的
padx
pady
选项。我会尽力澄清我的答案。
from tkinter import *
root = Tk()

l = Label(root, text="hello" )
l.pack(padx=6, pady=4) # where padx and pady represent the x and y axis respectively
# well you can also use side=LEFT inside the pack method of the label widget.
but = Button(root, text="hello" )
but.grid(row=0, column=1)
-pady {10,0}