2016-11-10 4 views
0

배경에 사용하려는 이미지가있는 캔버스가 있습니다. 내 문제는 내가 올바른 위치에 단추를 배치하고 아래로 스크롤하려고하면 캔버스에서 원하는 위치에 머무르지 않고 단추가 화면과 함께 이동한다는 것입니다.버튼을 Tkinter 3를 사용하는 화면이 아닌 캔버스에 배치하는 방법

frame = Frame(self) 
    frame.pack() 

    mapImg = PhotoImage(file='Fo4-pip-map.png') 
    canvas = Canvas(frame, width=2048, height=2048, scrollregion=(0,0,2048,2048)) 
    canvas.create_image(0,0, image=mapImg, anchor='nw') 
    canvas.image = mapImg 

    xscrollbar = Scrollbar(frame, orient=HORIZONTAL) 
    xscrollbar.pack(side=BOTTOM, fill=X, anchor='s') 
    yscrollbar = Scrollbar(frame, orient=VERTICAL) 
    yscrollbar.pack(side=RIGHT, fill=Y, anchor='e') 
    xscrollbar.config(command=canvas.xview) 
    yscrollbar.config(command=canvas.yview) 

    canvas.config(xscrollcommand=xscrollbar.set, yscrollcommand=yscrollbar.set) 
    canvas.pack(side=LEFT, expand=True, fill=BOTH) 


    vaultImg = PhotoImage(file='Vault.png') 
    vaultImg = vaultImg.zoom(5) 
    vaultImg = vaultImg.subsample(32) 

    vault111Button = Button(canvas, width=30, height=30, borderwidth=0, image=vaultImg, 
          command=lambda: controller.show_frame('Vault111')) 
    vault111Button.image = vaultImg 
    vault111Button.place(x=150, y=100) 
+0

들여 쓰기가 약간 끊어졌습니다. –

+0

@BryanOakley 나는 그것을 고쳤습니까? 당신이 첫 번째 라인을 의미한다면, 나는 그것을 잘못 붙였다. 전체가 같은 들여 쓰기에 있습니다. – DamnFreckles

+0

예, 편집기와 실제 질문에서 동일하게 보이는 경우 수정했습니다. –

답변

0

place 형상 관리자는 고정 된 부모로부터의 오프셋 (offset)에 자녀를 배치 - 특히, 캔버스의 스크롤이 그들에게 적용되지 않습니다. 마지막 줄을 제거하고 대신 다음을 사용하십시오.

canvas.create_window(150, 100, window=vault111Button) 
관련 문제