2011-12-26 4 views
3

방금 ​​Python (3.2.2)에서 tkinter를 사용하는 방법을 배웠고 그리드 관리자를 사용하여 문제가 발생했습니다. 예를 들어, button.grid (sticky = SE)를 넣으면 버튼이 오른쪽 아래에 놓이지 않고 고정 값을 무시하고 왼쪽 상단에 놓입니다. 여기서 내가 뭘 잘못하고 있니? 나는 그것을 찾으려고 노력했지만, 내가 잘못하고있는 것을 정말로 발견 할 수 없었다.파이썬 tkinter 그리드 매니저?

+0

유용한 답변을 얻으려면 반드시 투표하고 수락하십시오. – Dave

답변

4

버튼이 포함 된 위젯의 최소 크기를 설정해야 할 수도 있습니다. 그렇지 않으면 컨테이너 위젯이 축소되어 버튼을 표시하는 데 필요한 공간 만 차지할 수 있습니다. 그렇다면 컨테이너 위젯은 차이점을 표시 할 공간이 없으므로 sticky 옵션은 의미가 없습니다. 용기 위젯으로서 tk.Frame 등을 사용

:

import Tkinter as tk 

class SimpleApp(object): 
    def __init__(self, master, **kwargs): 
     title = kwargs.pop('title') 
     frame = tk.Frame(master, borderwidth=5, bg = 'cyan', **kwargs) 
     frame.grid() 
     button = tk.Button(frame, text = title) 
     button.grid(sticky = tk.SE) 
     frame.rowconfigure('all', minsize = 200) 
     frame.columnconfigure('all', minsize = 200) 

def basic(): 
    root = tk.Tk() 
    app = SimpleApp(root, title = 'Hello, world') 
    root.mainloop() 
basic() 

enter image description here


PS를 산출한다. 나는이를 테스트 할 수 Python3.2에 설치 Tkinter를이없는,하지만 난 단 하나의 변화는 Python3.2이 작품은

import tkinter as tk 

대신

import Tkinter as tk 
이다 만들 필요가 있다고 생각
1

"내가 뭘 잘못하고 있니?"라고 말하면 코드를 게시해야합니다. 그렇지 않으면 무엇이 잘못되었는지 추측 할 수 있습니다.

다음 작업은 격자 셀의 오른쪽 아래 모서리 (SE)에 단추를 배치하여 정상적으로 작동합니다. 기본값은 왼쪽 위 (NW)가 아닌 가운데입니다.

from tkinter import Button, Label, Entry, Tk, SE 
root = Tk() 
Label(text="Lots o' Stuff", width=30, height=15, 
     borderwidth=2, relief="raised").grid(rowspan=2) 
Entry().grid(row=0, column=2) 
Button(text="Hit Me").grid(row=1, column=2, sticky=SE) 
root.mainloop()