2012-07-05 2 views
0

я почти на месте разрывают мои волосы над этим один:Python Tkinter не xscrollbar работает

Я пытаюсь получить xscrollbar и yscrollbar работать так, что я могу двигаться вокруг большого холста в Tkinter , Причина, по которой я так расстроена, заключается в том, что 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, соответственно. Может ли кто-нибудь увидеть, что я делаю неправильно? Я очень отчаянно нуждаюсь в помощи!

Спасибо!

Гейб

+0

Когда вы говорите, что это не работает, означает ли это, что оно появляется, но его перетаскивание не имеет никакого эффекта? –

+0

Бар, который окружает полосу прокрутки, отображается горизонтально сверху, но в нем нет полосы прокрутки. – user1503132

+0

@BryanOakley Кажется, что бар в сером цвете, после попытки кода, который он отправил – TankorSmash

ответ

1

Причина XBAR не работает, потому что это не имеет ничего, чтобы прокрутить к. После того, как вы настроите холст на размер, больший, чем экран, он начнет работать. Взгляните на следующий код, чтобы узнать, где я добавил конфигурацию 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() 
Смежные вопросы