2010-11-21 4 views

답변

6

모든 방향으로 기입하십시오. 필요에 따라 패딩을 추가하십시오.

또는 상대 위치 지정 또는 절대 위치 지정을 사용할 수있는 장소를 사용하십시오. 상대 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() 
+0

f1과 f2가 부모를 선언하지 않으므로 약간 혼란 스럽습니다. f1은 루트로 압축 된 것을 어떻게 알 수 있습니까? 또한 2 개의 다른 지오메트리 관리자가 혼합되어 있습니다. 이것은 모든 곳에서 나쁜 습관으로 경고됩니다. 그러나, 그것은 작동하고, 내가 몇 시간 동안 붙어 있었던 문제를 해결합니다. 그래서 +1! – wsaleem

+1

@wsaleem : 루트 창을 제외한 모든 창에는 부모가 있어야합니다. 루트 창은 위젯이 명시 적으로 부모를 지정하지 않은 경우의 기본값입니다. 팩 및 장소 (및/또는 그리드)를 혼합하는 경우 : 응용 프로그램 전체에서 상당히 괜찮습니다. 심지어 바람직합니다. 같은 창에 포함시킬 수 없습니다. 이 경우'f1'은 루트 창에 의해 관리되고'f2'는'in_' 매개 변수 때문에'f1'에 의해 관리됩니다. –

관련 문제