Russell E. Owen
1/24/2008 11:27:00 PM
In article <mailman.1052.1201215005.896.python-list@python.org>,
"Ivan Van Laningham" <ivanlan9@gmail.com> wrote:
> Hi All--
> I'm having two problems with the scrollbar callback on linux systems
> (Fedora 7, Suse 10.1,2 and 3 all exhibit the issues).
>
> Problem one: on Windows, the callback is called with the arguments as
> specified in the doc: "scroll", "1" or "-1", "units". When I run the
> identical code on linux, the callback is invoked with only one
> argument, "1" or "-1". Here's a small program which demos the
> problem:
>
> ========begin============
> #!/usr/bin/env python
>
> from Tkinter import *
> import sys
>
> def die(event):
> sys.exit(0)
> def sDoit(*args):
> for i in args:
> print "scrollbar:",i, type(i)
> root=Tk()
> f=Frame(root)
> f.pack(expand=1,fill=BOTH)
> button=Button(f,width=25)
> button["text"]="Quit"
> button.bind("<Button>",die)
> button.pack()
> xb=Scrollbar(f,orient=HORIZONTAL,command=sDoit)
> xb.pack()
> root.mainloop()
> =============end===========
>
> On Windows, it produces the correct output
>
> scrollbar: scroll <type 'str'>
> scrollbar: 1 <type 'str'>
> scrollbar: units <type 'str'>
>
> but on linux, it produces
>
> scrollbar: 1 <type 'str'>
I see the same bad thing on our RedHat Enteprise unix system which has
the default tcl/tk 8.4.6. However I found that if you send the scrollbar
the "set" command first then it behaves normally. I think it just starts
out in a funny state where it has no idea how to display itself.
-- Russell
(P.s. it works fine on my MacOS X 10.4.11 system with default tcl 8.4.7
or with add-on 8.4.14).