2
grid_propagate() 메서드를 사용하여 크기가 고정 된 프레임이 있습니다. 이 프레임 내에 프레임을 가운데에 배치하고 싶습니다. 어떻게해야합니까?Tkinter에서 프레임 내의 프레임을 중앙에 배치하려면 어떻게합니까?
grid_propagate() 메서드를 사용하여 크기가 고정 된 프레임이 있습니다. 이 프레임 내에 프레임을 가운데에 배치하고 싶습니다. 어떻게해야합니까?Tkinter에서 프레임 내의 프레임을 중앙에 배치하려면 어떻게합니까?
모든 방향으로 기입하십시오. 필요에 따라 패딩을 추가하십시오.
또는 상대 위치 지정 또는 절대 위치 지정을 사용할 수있는 장소를 사용하십시오. 상대 x/y는 .5/.5이고 앵커는 "c"(중앙)입니다.
import Tkinter as tk
root=tk.Tk()
f1 = tk.Frame(width=200, height=200, background="red")
f2 = tk.Frame(width=100, height=100, background="blue")
f1.pack(fill="both", expand=True, padx=20, pady=20)
f2.place(in_=f1, anchor="c", relx=.5, rely=.5)
root.mainloop()
f1과 f2가 부모를 선언하지 않으므로 약간 혼란 스럽습니다. f1은 루트로 압축 된 것을 어떻게 알 수 있습니까? 또한 2 개의 다른 지오메트리 관리자가 혼합되어 있습니다. 이것은 모든 곳에서 나쁜 습관으로 경고됩니다. 그러나, 그것은 작동하고, 내가 몇 시간 동안 붙어 있었던 문제를 해결합니다. 그래서 +1! – wsaleem
@wsaleem : 루트 창을 제외한 모든 창에는 부모가 있어야합니다. 루트 창은 위젯이 명시 적으로 부모를 지정하지 않은 경우의 기본값입니다. 팩 및 장소 (및/또는 그리드)를 혼합하는 경우 : 응용 프로그램 전체에서 상당히 괜찮습니다. 심지어 바람직합니다. 같은 창에 포함시킬 수 없습니다. 이 경우'f1'은 루트 창에 의해 관리되고'f2'는'in_' 매개 변수 때문에'f1'에 의해 관리됩니다. –