2012-07-05 1 views
0

내가 이상 내 머리를 찢어의 시점에서 거의 해요 작동하지 xscrollbar이 하나파이썬 Tkinter를이

은 내가 Tkinter를 큰 캔버스 주위를 이동할 수 있도록 xscrollbar를 얻고 작업 yscrollbar하기 위해 노력하고있어 . 너무 좌절 한 이유는 yscrollbar가 정확히 동일한 코드 (x를 y로 바꾸는 것)를 사용하고있는 것 같기 때문입니다. 다음은 내가 가지고있는 것입니다.

master = Tk() 
scrolly = Scrollbar(master,orient = VERTICAL) 
scrollx = Scrollbar(master,orient = HORIZONTAL) 
scrollx.pack(side = TOP,fill = X) 
scrolly.pack(side = RIGHT,fill = Y) 
w = Canvas(master, width=1000,height=1000,yscrollcommand = scrolly.set,xscrollcommand = scrollx.set,scrollregion=(0,0,1000,1000)) 
s = Scale(master,from_= 0, to=len(worldlist)-1,orient = HORIZONTAL,length = 595) 
s.pack(side = BOTTOM) 
w.pack() 
setSys(worldlist[0],master,w) 
def show(self): 
    w.delete(ALL) 
    setSys(worldlist[s.get()],master,w) 
s.config(command = show) 
scrolly.config(command = w.yview) 
scrollx.config(command = w.xview) 
mainloop() 

하단에 저울과 캔버스를 배치하고 싶습니다. 그리고 오른쪽과 상단에는 각각 ybar와 xbar가 있습니다. 누구든지 내가 뭘 잘못하고 있는지 알 수 있니? 나는 도움이 절실히 필요하다!

감사합니다. 이에 스크롤 아무것도있다 때문에 xbar가 작동하지

게이브

+0

작동하지 않는다고 말하면 표시되지만 끌면 효과가 없습니다. –

+0

스크롤바를 둘러싸는 막대가 상단에 수평으로 나타나지만 스크롤 막대가 없습니다. – user1503132

+0

@ BryanOakley 코드가 회색으로 바뀐 것처럼 보입니다. 코드를 입력 한 후 – TankorSmash

답변

1

이유입니다. 캔버스를 화면보다 큰 크기로 구성하면 작업이 시작됩니다. 다음 코드를보고 scrollregion 구성을 추가 한 위치를 확인하십시오. http://www.java2s.com/Code/Python/GUI-Tk/ScrolledCanvas.htm

from Tkinter import * 

def show(self): 
    w.delete(ALL) 
    setSys(worldlist[s.get()],master,w) 

master = Tk() 

scrolly = Scrollbar(master,orient = VERTICAL) 
scrollx = Scrollbar(master,orient = HORIZONTAL) 
scrollx.pack(side = TOP,fill = X) 
scrolly.pack(side = RIGHT,fill = Y) 

w = Canvas(master, width=500, height=500, yscrollcommand = scrolly.set, 
      xscrollcommand = scrollx.set, scrollregion=(0,0,1000,1000)) 
w.config(scrollregion=(0, 0, 500, 5000)) 
w.pack() 

s = Scale(master,from_= 0, to=100-1,orient = HORIZONTAL,length = 595) 
s.pack(side = BOTTOM) 
s.config(command = show) 


scrolly.config(command = w.yview) 
scrollx.config(command = w.xview) 


mainloop()