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


79

我如何在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像素。

Answers:


190

填充选项padxpadygridpack方法可利用一个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()

有趣。这种行为在任何地方都是半官方的吗?我最喜欢的两个tk资源effbotNew Mexico Tech并没有暗示这种方式的填充可能不均匀。秘密无证行为?
凯文

1
@Kevin:tkinter只是一个包含tk库的嵌入式tcl解释器的pythonic包装器。tk的规范文档提到了此功能。这是参考:tcl.tk/man/tcl8.5/TkCmd/grid.htm#M16
Bryan

适用于Grid Padx / Pady,但不适用于Frame。也许还有更多的例外存在
丹尼尔·布朗

1
@DanielBraun:它也适用于框架。Tkinter不在乎它是什么类型的小部件。
布莱恩·奥克利

1
@Giova:是的,元组版本只适用于该padxpady的选项gridpack。某些小部件的padxpady选项不同。您不能将其用于小部件的padxpady选项。我会尽力澄清我的答案。
布莱恩·奥克利
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.