From: Chris A. [email protected]
Subject: Re: Tk horizontal scrollbar infinite loop
Date: Sun, 26 Feb 2006 00:48:22 +0900
Message-ID: [email protected]
1.8.4 still has the problem.
Both of the tests below have the problem.
Hmmm… That is a bad news.
Well, what message do you get from the following on 1.8.4?
require ‘tk’
r = Tk.root
f = TkFrame.new
sb = TkScrollbar.new(f, :orient=>:horizontal)
p [‘a’,
[[r.winfo_reqwidth,r.winfo_reqheight],
[r.winfo_width,r.winfo_height]],
[[f.winfo_reqwidth,f.winfo_reqheight],
[f.winfo_width,f.winfo_height]],
[[sb.winfo_reqwidth,sb.winfo_reqheight],
[sb.winfo_width,sb.winfo_height]]
]
sb.pack(:side=>:bottom, :fill=>:x)
p [‘b’,
[[r.winfo_reqwidth,r.winfo_reqheight],
[r.winfo_width,r.winfo_height]],
[[f.winfo_reqwidth,f.winfo_reqheight],
[f.winfo_width,f.winfo_height]],
[[sb.winfo_reqwidth,sb.winfo_reqheight],
[sb.winfo_width,sb.winfo_height]]
]
Tk.update
p [‘c’,
[[r.winfo_reqwidth,r.winfo_reqheight],
[r.winfo_width,r.winfo_height]],
[[f.winfo_reqwidth,f.winfo_reqheight],
[f.winfo_width,f.winfo_height]],
[[sb.winfo_reqwidth,sb.winfo_reqheight],
[sb.winfo_width,sb.winfo_height]]
]
f.pack(:side=>:bottom, :fill=>:x)
p [‘d’,
[[r.winfo_reqwidth,r.winfo_reqheight],
[r.winfo_width,r.winfo_height]],
[[f.winfo_reqwidth,f.winfo_reqheight],
[f.winfo_width,f.winfo_height]],
[[sb.winfo_reqwidth,sb.winfo_reqheight],
[sb.winfo_width,sb.winfo_height]]
]
Tk.update
p [‘e’,
[[r.winfo_reqwidth,r.winfo_reqheight],
[r.winfo_width,r.winfo_height]],
[[f.winfo_reqwidth,f.winfo_reqheight],
[f.winfo_width,f.winfo_height]],
[[sb.winfo_reqwidth,sb.winfo_reqheight],
[sb.winfo_width,sb.winfo_height]]
]
Tk.after(1000){
p [‘f’,
[[r.winfo_reqwidth,r.winfo_reqheight],
[r.winfo_width,r.winfo_height]],
[[f.winfo_reqwidth,f.winfo_reqheight],
[f.winfo_width,f.winfo_height]],
[[sb.winfo_reqwidth,sb.winfo_reqheight],
[sb.winfo_width,sb.winfo_height]]
]
}
Tk.mainloop
My Linux box returns
[“a”, [[200, 200], [1, 1]], [[1, 1], [1, 1]], [[2, 21], [1, 1]]]
[“b”, [[200, 200], [1, 1]], [[1, 1], [1, 1]], [[2, 21], [1, 1]]]
[“c”, [[200, 200], [200, 200]], [[2, 21], [1, 1]], [[2, 21], [1, 1]]]
[“d”, [[200, 200], [200, 200]], [[2, 21], [1, 1]], [[2, 21], [1, 1]]]
[“e”, [[42, 21], [42, 21]], [[42, 21], [42, 21]], [[42, 21], [42, 21]]]
[“f”, [[42, 21], [42, 21]], [[42, 21], [42, 21]], [[42, 21], [42, 21]]]
When sb.pack(:side=>:bottom, :fill=>:x, :pady=>1), returns
[“a”, [[200, 200], [1, 1]], [[1, 1], [1, 1]], [[2, 21], [1, 1]]]
[“b”, [[200, 200], [1, 1]], [[1, 1], [1, 1]], [[2, 21], [1, 1]]]
[“c”, [[200, 200], [200, 200]], [[2, 23], [1, 1]], [[2, 21], [1, 1]]]
[“d”, [[200, 200], [200, 200]], [[2, 23], [1, 1]], [[2, 21], [1, 1]]]
[“e”, [[42, 23], [42, 23]], [[42, 23], [42, 23]], [[42, 21], [42, 21]]]
[“f”, [[42, 23], [42, 23]], [[42, 23], [42, 23]], [[42, 21], [42, 21]]]