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