2010-07-10 6 views
1

Tkinter grid() 관리자에 약간의 문제가 있습니다. 열을 너무 멀리 떨어 뜨리는 것입니다. 배치 할 위젯이 두 개 있으며, 다른 위젯을 거의 직접적으로 필요로합니다. 같은 행과 열에 둘 다 배치하지만 패디 옵션을 변경하면 서로의 위에 직접 배치됩니다. 나는이 문제를 해결할 수있는 방법이 있어야한다는 것을 알고 있으며 전에는이 문제가 없었습니다.Tkinter grid() Manager

Windows XP에서 Python 2.6을 사용하고 있습니다.

답변

2

같은 행과 열의에 배치하지 마십시오 행의 상단, 하단을 배치 행 + 1에서 같은 열. 그건 속임수 야.

그리드 관리자는 위젯으로 채워진 모든 행과 열을 가질 필요는 없습니다. 빈 행과 열을 무시합니다.

2

이들이 유일한 위젯입니까? 아니면 높이가 한 행 이상인 또 다른 위젯이 있습니까? 그렇다면 "rowspan"속성을 추가해야합니다.

만약이 경우가 아니라면, 나는이 셀 (aply to "row3span 2")에 대해 Tkinter.Frame 위젯을 추가하고이 프레임 내에 "pack"태그로 원하는 위젯을 추가하기 만하면됩니다. . 관리자 그래서

, 대신 :

entr1.grid(my_window, row=1, column=1) 
entr2.grid(my_window, row=1, column=1) 

당신이 할 :

frame = Tkinter.Frame(my_window) 
entr1 = Tkinter.<Whatever-widget>(Frame, ...) 
entr1.pack() 
entr2 = Tkinter.<Whatever-widget>(Frame, ...) 
entr2.pack() 
+0

창 하단에 3 개의 버튼이 더 정렬되어 있어야합니다. grid() 관리자를 사용해야하는 이유는 위젯이 .GIF 이미지 위에 놓여 있기 때문입니다. –

+0

여기에 코드를 붙여 넣을 것입니다 : http://pastebin.com/dNrdakHB –

+0

| Whatverer, 노력하고있어, 같은 격자 셀 (같은 행과 열)에 위젯 하나 더 넣으려고하지 마라. 그걸 취소하십시오. colspan = 3으로 셀을 만들고, 프레임으로 채우고, 그리드 또는 팩을 사용하여 필요한 경우 내부에 idgets를 다시 배분하십시오. – jsbueno