한쪽에만 tkinter 위젯에 패딩 추가


83

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)

라벨 상단에만 30px 패딩을 원합니다.

답변:


198

패딩 옵션 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 는 패딩이 이런 식으로 고르지 않을 수 있다는 힌트를주지 않습니다. 문서화되지 않은 비밀 행동?
Kevin

1
@Kevin : tkinter는 tk 라이브러리를 포함하는 임베디드 tcl 인터프리터를 둘러싼 pythonic 래퍼입니다. tk의 표준 문서는이 기능을 언급합니다. 다음은 참조입니다 : tcl.tk/man/tcl8.5/TkCmd/grid.htm#M16
Bryan Oakley

Grid padx / pady에서 작동하지만 Frame에서는 작동하지 않습니다. 아마 더 많은 예외가 존재
다니엘 브라운

1
@DanielBraun : 프레임에서도 작동합니다. Tkinter는 그것이 어떤 유형의 위젯인지 상관하지 않습니다.
Bryan Oakley

1
@Giova : 예, 튜플 버전에서만 작동 padxpady의 옵션 gridpack. 일부 위젯 의 padxpady옵션이 다릅니다. 위젯 의 padxpady옵션 에는 사용할 수 없습니다 . 나는 내 대답을 명확히하려고 노력할 것입니다.
Bryan Oakley
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.