Ventana de Tkinter con barra scroll

Ekaitz Lizundia elizundia en fitbak.com
Mar Ene 30 09:47:15 CET 2007


Te pongo mi codigo:

from Tkinter import *

root=Tk()

frame = Frame(root, bd=2, relief=SUNKEN)
frame.pack(fill=BOTH)

xscrollbar = Scrollbar(frame, orient=HORIZONTAL)
xscrollbar.grid(row=1, column=0, sticky=E+W)

yscrollbar = Scrollbar(frame)
yscrollbar.grid(row=0, column=1, sticky=N+S)

canvas = Canvas(frame, bd=0, scrollregion=(0, 0, 1000, 1000),
                xscrollcommand=xscrollbar.set,
                yscrollcommand=yscrollbar.set)

xscrollbar.config(command=canvas.xview)
yscrollbar.config(command=canvas.yview)

canvas.grid(row=0, column=0, sticky=N+S+E+W)

f=Frame(canvas)
f.pack()

## AQUI PUEDES PONER TUS FRAMES Y TUS ENTRY

canvas.create_window(0,0,ancho=NW,window=f)

root.mainloop()

Asi deberia de funcionar, por lo menos a mi me funciona. Si quieres solo
el scroll vertical, el otro puedes quitar.

> Si, eso es lo que habia intentado, salen bien en pantalla pero no
> funcionan. Aqui os pongo el codigo que he utilizado:
>
>
> Update = Toplevel(SteadyState.master)
> Update.title('Add new information to the database')
> Update.geometry('400x600')
>
> canv = Canvas(Update, relief=SUNKEN)
> canv.config(width=400, height=600)
>
> # Puede ser aqui el fallo? no sabia que valores pone
> # lo logico es que te lo calculara solo, segun el tamanho del texto
> canv.config(scrollregion=(0,0,300, 1000))
> canv.config(highlightthickness=0)
>
> sbar = Scrollbar(canv)
> sbar.config(command=canv.yview)
> canv.config(yscrollcommand=sbar.set)
> sbar.pack(side=RIGHT, fill=Y)
> canv.pack(side=LEFT, expand=YES, fill=BOTH)
>
>
> Y despues le imprimo unas 50 "label" con "entry"s, a su lado para que
> el usuario meta informacion, todo ello sobre el Canvas, no sobre la
> ventana, en una unica columna, por eso es tan importante la scrollbar.
>
>
> Saludos,
> Manuel
>
> El día 29/01/07, Ekaitz Lizundia <elizundia en fitbak.com> escribió:
>> Yo el otro dia me paso lo mismo, y la mejor solucion diria yo es que
>> hagas
>> un canvas, y vayas construyendo los frames dentro del canvas. El
>> resultado
>> es igual.
>>
>>
>> > Hola a todos de nuevo,
>> >
>> > He estado intentando sin exito poner una barra de scroll vertical a
>> una
>> > ventana de Tkinter toplevel normal y corriente. Consigo que aparezca,
>> pero
>> > no tiene ningun efecto, no mueve nada.
>> >
>> > Por lo que he encontrado en Google deberia poner algo asi como:
>> >
>> > scroll = Scrollbar(ventana)
>> > scroll.pack (side=RIGHT, fill=Y)
>> > ventana.config(yscrollcommand=scroll.set)  # Error aqui, ventana no
>> tiene
>> > yscrollcommand
>> > scroll.config(command=ventana.yview)  # Y otro error aqui, no tiene
>> yview
>> > tampoco
>> >
>> > Ese codigo era para un "canvas", lo probe para una ventana pero nada,
>> > sabeis
>> > cuales serian los equivalentes en este caso?
>> >
>> >
>> > Un saludo,
>> > Manuel Malo de Molina
>> > _______________________________________________
>> > Python-es mailing list
>> > Python-es en aditel.org
>> > http://listas.aditel.org/listinfo/python-es
>> >
>>
>>
>> --
>> Ekaitz Lizundia Huete
>> Fitbak SL
>> Telf. 943 367098
>>
>> elizundia en fitbak.com
>> _______________________________________________
>> Python-es mailing list
>> Python-es en aditel.org
>> http://listas.aditel.org/listinfo/python-es
>>
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
>


-- 
Ekaitz Lizundia Huete
Fitbak SL
Telf. 943 367098

elizundia en fitbak.com




Más información sobre la lista de distribución Python-es