Tkinter Scrollbar not working

Martin Franklin mfranklin1 at gatwick.westerngeco.slb.com
Tue Jan 3 09:12:34 EST 2006


Dustan wrote:
> Martin Franklin wrote:
> 
>>Dustan wrote:
>>
>>>I'm trying to get a scrollbar bound with a Frame, and I keep on getting
>>>a scrollbar, but it doesn't actually scroll. Some help, please?
>>>
>>
>>It can be tricky getting an empty frame to scroll, can you post your
>>example code so that we might be more helpful.  Here is an example of
>>binding a scroll bar to a Text widget (not exactly the same thing)
>>
> 
> 
> It's not an empty frame. It has a label. I was trying to do it with
> just the label, but it didn't work, and I figured it might be a better
> idea to try doing it with a frame instead.
> 
> 
>>## import all names from Tkinter
>>## bit naughty but I don't mind
>>from Tkinter import *
>>
>>
>># root window
>>root=Tk()
>>
>>
>># text area
>>text=Text()
>>text.pack(side="left", expand="yes", fill="both")
>>
>># scrolbar for above textarea
>>sb = Scrollbar(root)
>>sb.pack(side="right", fill="y")
>>
>>
>>
>>## bind them both together...
>>
>># this line binds the yscrollcommand
>># of the text area to the scrollbar set method
>>text['yscrollcommand'] = sb.set
>>
>># this line binds the scrollbars command to
>># the yview method of the text area
>>sb['command'] = text.yview
>>
>>
>>
>># mainloop entry
>>root.mainloop()
> 
> 
> That doesn't help. I need to be able to do it either with a frame (has
> content!) or a Text widget.
> 

Perhaps I am not understanding something... can you please show me an 
example of what is not working. I consider the above a good recipe that
can be applied to any scrollable widget in Tkinter.

hmm, a single change to my example (Text to Frame) produces this
traceback:-


 >C:/python24/python -u "quicksb.py"
Traceback (most recent call last):
   File "quicksb.py", line 17, in ?
     text['yscrollcommand'] = sb.set
   File "C:\python24\lib\lib-tk\Tkinter.py", line 1146, in __setitem__
     self.configure({key: value})
   File "C:\python24\lib\lib-tk\Tkinter.py", line 1139, in configure
     return self._configure('configure', cnf, kw)
   File "C:\python24\lib\lib-tk\Tkinter.py", line 1130, in _configure
     self.tk.call(_flatten((self._w, cmd)) + self._options(cnf))
_tkinter.TclError: unknown option "-yscrollcommand"
 >Exit code: 1

and another change (Frame to Label) produces this traceback:-


 >C:/python24/python -u "quicksb.py"
Traceback (most recent call last):
   File "quicksb.py", line 17, in ?
     text['yscrollcommand'] = sb.set
   File "C:\python24\lib\lib-tk\Tkinter.py", line 1146, in __setitem__
     self.configure({key: value})
   File "C:\python24\lib\lib-tk\Tkinter.py", line 1139, in configure
     return self._configure('configure', cnf, kw)
   File "C:\python24\lib\lib-tk\Tkinter.py", line 1130, in _configure
     self.tk.call(_flatten((self._w, cmd)) + self._options(cnf))
_tkinter.TclError: unknown option "-yscrollcommand"
 >Exit code: 1


This would suggest that the Frame and Label widgets are not scrollable
(at least not in the 'y' direction)


Cheers
Martin




More information about the Python-list mailing list