Dustan said:
Martin said:
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"
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"
This would suggest that the Frame and Label widgets are not scrollable
(at least not in the 'y' direction)
Cheers
Martin