Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Tkinter Scrollbar not working

Reply
Thread Tools

Tkinter Scrollbar not working

 
 
Dustan
Guest
Posts: n/a
 
      01-02-2006
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?

 
Reply With Quote
 
 
 
 
Dustan
Guest
Posts: n/a
 
      01-02-2006
BTW, experience tells me it is necessary for me to explicitly state
that I'm a newbie (otherwise I get rude people saying I should already
know such-and-such).

 
Reply With Quote
 
 
 
 
Martin Franklin
Guest
Posts: n/a
 
      01-03-2006
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)


## 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()


 
Reply With Quote
 
Dustan
Guest
Posts: n/a
 
      01-03-2006

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.

 
Reply With Quote
 
Dustan
Guest
Posts: n/a
 
      01-03-2006
Label Widget, sorry

 
Reply With Quote
 
Martin Franklin
Guest
Posts: n/a
 
      01-03-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

 
Reply With Quote
 
Cameron Laird
Guest
Posts: n/a
 
      01-03-2006
In article <(E-Mail Removed). com>,
Dustan <(E-Mail Removed)> wrote:
>BTW, experience tells me it is necessary for me to explicitly state
>that I'm a newbie (otherwise I get rude people saying I should already
>know such-and-such).
>


That experience generalize poorly to comp.lang.python.
 
Reply With Quote
 
jmdeschamps@gmail.com
Guest
Posts: n/a
 
      01-03-2006

Dustan a écrit :

> 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?


Frames are NOT scrollable objects for scrollbars in Tkinter: Listbox,
Canvas and Text widget are.

I f you want/need to scroll something else, I think you are going to
have to do it yourself, meaning you can use the scrollbars to get user
input by binding an event to it, and then moving things around your
Frame to give the scrolling appearance.

OR you can take a look at a third-party such as PythonMegaWidgets (PMW)
who have them I believe...

Happy New Year anyhow...

Jean-Marc

 
Reply With Quote
 
Dustan
Guest
Posts: n/a
 
      01-03-2006
Yes, I know PMW has scrolled Text, but the module has to be installed
seperately; this is something I'm releasing to a number of people.

I'll try doing it with a canvas.

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Custom Tkinter scrollbar Hunter.lennon@gmail.com Python 2 11-24-2007 10:27 AM
tkinter modifying multiple widgets with one scrollbar spohle Python 1 06-24-2006 03:30 PM
Tkinter: scrollbar in grid-managed frame anx@io.us Python 1 11-16-2005 09:47 PM
Tkinter and Scrollbar codecraig Python 0 04-19-2005 03:17 PM
ScrollBar? Does it exist just WEB ScrollBar Control? Alex ASP .Net Web Controls 1 04-04-2004 12:44 AM



Advertisments