2017-02-19 1 views
0

나는 정보로 채우기를 원하는 두 개의 별도 프레임이있는 tkinter 창을 가지고있다. 나의 유일한 문제는 프레임 크기 자체가 다이나믹하게 설정된다는 것이다. 내 창 크기는 500 x 500이고 위쪽 프레임은 0,0에서 250,250으로 이동합니다. 하단은 0,250에서 500,500 사이입니다.파이썬 tkinter에서 고정 된 프레임 크기를 설정하는 방법

def main_game(username,password,new_u,old_u): 
    Tk_window_center(500,500) 
    root.resizable(width=False, height=False) 
    ## 
    if new_u =="": 
     pass 
    else: 
     new_u.pack_forget() 
    if old_u =="": 
     pass 
    else: 
     old_u.pack_forget() 
    ## 
    output_window_frame=Frame(root, bg="black") 
    user_terminal_frame=Frame(root) 
    ## 
    usr_output=Label(output_window_frame) 
    user_inp=Entry(user_terminal_frame) 
    user_term=Label(user_terminal_frame) 
    ## 
    output_window_frame.grid(row=0,column=0,rowspan=3,columnspan=3, sticky="NSEW") 

    user_terminal_frame.grid(row=4,column=0,rowspan=3,columnspan=3, sticky="NSEW") 
    user_inp.pack(side="top", fill="x") 
    user_term.pack(side="bottom", fill="x") 

추신 : 나는 지금까지 내 코드는이 시점 여기

에서 아이디어를 얻을 것 같아요 new_u 및 old_u는 시작시 활성화되는 이전 프레임입니다.

+0

왜 정확한 크기가 필요한가요? 일반적으로 gui가 내용물에 맞게 축소되거나 커지도록하는 것이 가장 좋습니다. 500 픽셀의 특별한 점은 무엇입니까? –

+0

@BryanOakley im은 수정 된 화면 안에서 게임을 만들고 크기를 동적으로 바꿀 수 없습니다. –

+0

상단 및 하단 프레임이있는 경우 왜 하단 프레임이 1 행이 아닌 4 행에 있어야합니까? –

답변

0

grid을 사용하고 있으므로 각 행에 0이 아닌 가중치를 부여해야 각 행이 확장되어 부모의 절반을 채울 수 있습니다. 당신은 OK입니다 4 행에 하나 개의 창을 가하고 있습니다,하지만 당신은 단지 그렇게 오해의 소지 창에 두 개의 항목이 있기 때문에 당신이 다른 물건을 넣을 경우 나, 행 0과 1 물론

root.grid_rowconfigure(0, weight=1) 
root.grid_rowconfigure(4, weight=1) 

output_window_frame.grid(row=0,column=0,rowspan=3,columnspan=3, sticky="NSEW") 

user_terminal_frame.grid(row=1,column=0,rowspan=3,columnspan=3, sticky="NSEW") 

를 사용하는 것이 좋습니다 행 1, 2 또는 3이면 프레임의 높이가 각각 250 픽셀이되지 않습니다.

동일한 작업을 수행하는 다른 방법이 있습니다. pack을 사용하고 팩 옵션 fill"both"expand ~ True으로 설정할 수 있습니다. 또는, 장소를 사용하고 x/y 좌표가 0,0 인 상대 너비와 상대 높이가 0.5 인 상단 창을 배치 한 다음 상대 너비가 1.0 인 상대 250250을 다시 배치 할 수 있습니다. 상대 높이가 .5

관련 문제