Re: Problem with Tkinter scrollbar callback

2008-01-30 Thread Ivan Van Laningham
HI All--
We've decided that this represents a bug in the tcl/tk library, and
there's no workaround.  I switched to + and - buttons, which are not
as nice aesthetically but work correctly on both Windows  Linux.

Thanks to everyone for their help.

Metta,
Ivan

On Jan 29, 2008 11:03 AM, Ivan Van Laningham [EMAIL PROTECTED] wrote:
 No Joy.

 Waits the 1 second, then clicks the button once per second until the
 limit's reached.

 Sigh.

 Metta,
 Ivan


 On Jan 29, 2008 10:20 AM, Russell E Owen [EMAIL PROTECTED] wrote:
  Nope:
  
  'repeatdelay': ('repeatdelay', 'repeatDelay', 'RepeatDelay', '300', '300'),
  
  And even after I set it, it looks funny:
  
  'repeatdelay': ('repeatdelay', 'repeatDelay', 'RepeatDelay', '300', 
  '1000'),
  
  And when I try it with the new repeatdelay (1000), the only thing that
  has changed is that it waits 1000 milliseconds before exhibiting the
  same uncontrolled growth as before.
 
  You need to change repeatinterval, not repeatdelay.
 
  As to looking funny: that is the standard output format for
  configure(). I think can get a more reasonable value using
  cget(repeatdelay).
 
  -- Russell
 
 
  
  Metta,
  Ivan
  
  On Jan 25, 2008 5:49 PM, Russell E. Owen [EMAIL PROTECTED] wrote:
In article [EMAIL PROTECTED],
 Ivan Van Laningham [EMAIL PROTECTED] wrote:
  
 Hi All--
 That helps.  Doing a get() on the scrollbar before a set(0.0,0.0)
 returns a 4-tuple:  (0.0, 0.0, 0.0, 0.0)  !  I did the set(0.0,0.0)
 and now the callback gets the correct number of arguments.

 However, I'm still getting the weird behaviour when clicking the
 arrowheads--and the heads are all I want.  They act like they've been
 set to a keybounce timeout of about a millisecond. ...  The arrow
 click increments the number of cells in a table row (effectively), and
 it shoots up from 5 to 26 columns almost instantly (that's the
 internal max I set).
  
Is the scroll bar's repeatinterval set to a reasonable value?
  
-- Russell
  
--
http://mail.python.org/mailman/listinfo/python-list
  
  
  
  
  --
  Ivan Van Laningham
  God N Locomotive Works
  http://www.pauahtun.org/
  http://www.python.org/workshops/1998-11/proceedings/papers/laningham/laningham.html
  Army Signal Corps:  Cu Chi, Class of '70
  Author:  Teach Yourself Python in 24 Hours
 
 



 --

 Ivan Van Laningham
 God N Locomotive Works
 http://www.pauahtun.org/
 http://www.python.org/workshops/1998-11/proceedings/papers/laningham/laningham.html
 Army Signal Corps:  Cu Chi, Class of '70
 Author:  Teach Yourself Python in 24 Hours




-- 
Ivan Van Laningham
God N Locomotive Works
http://www.pauahtun.org/
http://www.python.org/workshops/1998-11/proceedings/papers/laningham/laningham.html
Army Signal Corps:  Cu Chi, Class of '70
Author:  Teach Yourself Python in 24 Hours
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Problem with Tkinter scrollbar callback

2008-01-29 Thread Ivan Van Laningham
Nope:

'repeatdelay': ('repeatdelay', 'repeatDelay', 'RepeatDelay', '300', '300'),

And even after I set it, it looks funny:

'repeatdelay': ('repeatdelay', 'repeatDelay', 'RepeatDelay', '300', '1000'),

And when I try it with the new repeatdelay (1000), the only thing that
has changed is that it waits 1000 milliseconds before exhibiting the
same uncontrolled growth as before.

Metta,
Ivan

On Jan 25, 2008 5:49 PM, Russell E. Owen [EMAIL PROTECTED] wrote:
 In article [EMAIL PROTECTED],
  Ivan Van Laningham [EMAIL PROTECTED] wrote:

  Hi All--
  That helps.  Doing a get() on the scrollbar before a set(0.0,0.0)
  returns a 4-tuple:  (0.0, 0.0, 0.0, 0.0)  !  I did the set(0.0,0.0)
  and now the callback gets the correct number of arguments.
 
  However, I'm still getting the weird behaviour when clicking the
  arrowheads--and the heads are all I want.  They act like they've been
  set to a keybounce timeout of about a millisecond. ...  The arrow
  click increments the number of cells in a table row (effectively), and
  it shoots up from 5 to 26 columns almost instantly (that's the
  internal max I set).

 Is the scroll bar's repeatinterval set to a reasonable value?

 -- Russell

 --
 http://mail.python.org/mailman/listinfo/python-list




-- 
Ivan Van Laningham
God N Locomotive Works
http://www.pauahtun.org/
http://www.python.org/workshops/1998-11/proceedings/papers/laningham/laningham.html
Army Signal Corps:  Cu Chi, Class of '70
Author:  Teach Yourself Python in 24 Hours
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Problem with Tkinter scrollbar callback

2008-01-29 Thread Ivan Van Laningham
No Joy.

Waits the 1 second, then clicks the button once per second until the
limit's reached.

Sigh.

Metta,
Ivan

On Jan 29, 2008 10:20 AM, Russell E Owen [EMAIL PROTECTED] wrote:
 Nope:
 
 'repeatdelay': ('repeatdelay', 'repeatDelay', 'RepeatDelay', '300', '300'),
 
 And even after I set it, it looks funny:
 
 'repeatdelay': ('repeatdelay', 'repeatDelay', 'RepeatDelay', '300', '1000'),
 
 And when I try it with the new repeatdelay (1000), the only thing that
 has changed is that it waits 1000 milliseconds before exhibiting the
 same uncontrolled growth as before.

 You need to change repeatinterval, not repeatdelay.

 As to looking funny: that is the standard output format for
 configure(). I think can get a more reasonable value using
 cget(repeatdelay).

 -- Russell


 
 Metta,
 Ivan
 
 On Jan 25, 2008 5:49 PM, Russell E. Owen [EMAIL PROTECTED] wrote:
   In article [EMAIL PROTECTED],
Ivan Van Laningham [EMAIL PROTECTED] wrote:
 
Hi All--
That helps.  Doing a get() on the scrollbar before a set(0.0,0.0)
returns a 4-tuple:  (0.0, 0.0, 0.0, 0.0)  !  I did the set(0.0,0.0)
and now the callback gets the correct number of arguments.
   
However, I'm still getting the weird behaviour when clicking the
arrowheads--and the heads are all I want.  They act like they've been
set to a keybounce timeout of about a millisecond. ...  The arrow
click increments the number of cells in a table row (effectively), and
it shoots up from 5 to 26 columns almost instantly (that's the
internal max I set).
 
   Is the scroll bar's repeatinterval set to a reasonable value?
 
   -- Russell
 
   --
   http://mail.python.org/mailman/listinfo/python-list
 
 
 
 
 --
 Ivan Van Laningham
 God N Locomotive Works
 http://www.pauahtun.org/
 http://www.python.org/workshops/1998-11/proceedings/papers/laningham/laningham.html
 Army Signal Corps:  Cu Chi, Class of '70
 Author:  Teach Yourself Python in 24 Hours





-- 
Ivan Van Laningham
God N Locomotive Works
http://www.pauahtun.org/
http://www.python.org/workshops/1998-11/proceedings/papers/laningham/laningham.html
Army Signal Corps:  Cu Chi, Class of '70
Author:  Teach Yourself Python in 24 Hours
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Problem with Tkinter scrollbar callback

2008-01-25 Thread Russell E. Owen
In article [EMAIL PROTECTED],
 Ivan Van Laningham [EMAIL PROTECTED] wrote:

 Hi All--
 That helps.  Doing a get() on the scrollbar before a set(0.0,0.0)
 returns a 4-tuple:  (0.0, 0.0, 0.0, 0.0)  !  I did the set(0.0,0.0)
 and now the callback gets the correct number of arguments.
 
 However, I'm still getting the weird behaviour when clicking the
 arrowheads--and the heads are all I want.  They act like they've been
 set to a keybounce timeout of about a millisecond. ...  The arrow
 click increments the number of cells in a table row (effectively), and
 it shoots up from 5 to 26 columns almost instantly (that's the
 internal max I set).

Is the scroll bar's repeatinterval set to a reasonable value?

-- Russell
-- 
http://mail.python.org/mailman/listinfo/python-list


Problem with Tkinter scrollbar callback

2008-01-24 Thread Ivan Van Laningham
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 can't believe that this is a bug that has not already been fixed, so
I must be doing something wrong.  But what?  I'm surely overlooking
something dead obvious. ...

Note that I don't want to use this as a scrollbar, all I need is the direction.

The second problem is more pernicious, in that I can work around the
first problem, and I don't really have a clue on the second.  On
Windows, clicking one of the arrow buttons produces one callback.  On
Linux, in the real application, if I click an arrow button once, the
callback continues to be called until I kill the app.  That doesn't
happen in the small program I've provided above, so I'm at a bit of a
loss where to start looking.  Any hints?

Metta,
Ivan
-- 
Ivan Van Laningham
God N Locomotive Works
http://www.pauahtun.org/
http://www.python.org/workshops/1998-11/proceedings/papers/laningham/laningham.html
Army Signal Corps:  Cu Chi, Class of '70
Author:  Teach Yourself Python in 24 Hours
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Problem with Tkinter scrollbar callback

2008-01-24 Thread Russell E. Owen
In article [EMAIL PROTECTED],
 Ivan Van Laningham [EMAIL PROTECTED] 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).
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Problem with Tkinter scrollbar callback

2008-01-24 Thread Ivan Van Laningham
Hi All--
That helps.  Doing a get() on the scrollbar before a set(0.0,0.0)
returns a 4-tuple:  (0.0, 0.0, 0.0, 0.0)  !  I did the set(0.0,0.0)
and now the callback gets the correct number of arguments.

However, I'm still getting the weird behaviour when clicking the
arrowheads--and the heads are all I want.  They act like they've been
set to a keybounce timeout of about a millisecond. ...  The arrow
click increments the number of cells in a table row (effectively), and
it shoots up from 5 to 26 columns almost instantly (that's the
internal max I set).

Metta,
Ivan

On Jan 24, 2008 4:27 PM, Russell E. Owen [EMAIL PROTECTED] wrote:
 In article [EMAIL PROTECTED],

  Ivan Van Laningham [EMAIL PROTECTED] 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).
 --
 http://mail.python.org/mailman/listinfo/python-list




-- 
Ivan Van Laningham
God N Locomotive Works
http://www.pauahtun.org/
http://www.python.org/workshops/1998-11/proceedings/papers/laningham/laningham.html
Army Signal Corps:  Cu Chi, Class of '70
Author:  Teach Yourself Python in 24 Hours
-- 
http://mail.python.org/mailman/listinfo/python-list