I've been experimenting with placing widgets inside a canvas. When I
tried to test it's performance on lots of widgets (in a column) I am
seeing the last few widgets not being displayed when the code does
[winfo reqheight $content]
where content is a frame and the value returned is over 32768 (actually starts failing just shy of that value).
This naturally leads me to suspect there's a 16 bit issue here.
I'm testing on windows 10, with 8.6 and 9.0 and get the same results.
Am 14.04.2025 um 05:44 schrieb et99:
I've been experimenting with placing widgets inside a canvas. When I
tried to test it's performance on lots of widgets (in a column) I am
seeing the last few widgets not being displayed when the code does
[winfo reqheight $content]
where content is a frame and the value returned is over 32768
(actually starts failing just shy of that value).
This naturally leads me to suspect there's a 16 bit issue here.
I'm testing on windows 10, with 8.6 and 9.0 and get the same results.
Unfortunately yes.
This is very annoying, specially in a virtual canvas, where scrolling is
used to display only a part.
And the biggest point is, that if you exceed the size, there is no
error, but display disruption, as widgets will be placed at negative coordinates etc.
The last experience is on Windows...
You have hit another swamp to clean-up...
Sorry,
Harald
Am 14.04.2025 um 08:33 schrieb Harald Oehlmann:
Am 14.04.2025 um 05:44 schrieb et99:
I've been experimenting with placing widgets inside a canvas. When I tried to test it's performance on lots of widgets (in a column) I am seeing the last few widgets not being displayed when the code does
[winfo reqheight $content]
where content is a frame and the value returned is over 32768 (actually starts failing just shy of that value).
This naturally leads me to suspect there's a 16 bit issue here.
I'm testing on windows 10, with 8.6 and 9.0 and get the same results.
Unfortunately yes.
This is very annoying, specially in a virtual canvas, where scrolling is used to display only a part.
And the biggest point is, that if you exceed the size, there is no error, but display disruption, as widgets will be placed at negative coordinates etc.
The last experience is on Windows...
You have hit another swamp to clean-up...
Sorry,
Harald
Tonts of Tk tickets on that:
https://core.tcl-lang.org/tk/tktview/3307625fff
Ah, I thought so Harald. You have read my mind, as that's exactly what I
was trying to do.
I was testing some wiki code, at https://wiki.tcl-lang.org/page/ A+scrolled+frame by Paul Walton (his sframe.tcl at the bottom) which
worked quite well for a spreadsheet like tool to display some csv files
with a matrix of entry widgets.
At least until I tried it on some large sample csv files I found at a
csv site. It dies on the 1000 row files.
And thanks for the link to the ticket.
I begin to see why what to me has always seemed to be a missing piece of
Tk, a -scrollable option for frames and toplevels.
I wonder how bwidgets and scrollutils handle large amounts of data. I
have tried both but never with large amounts of data. It seems the
answer is NOT to try to embed many thousands of entry widgets in a canvas.
Eric
On 4/13/2025 11:46 PM, Harald Oehlmann wrote:
Am 14.04.2025 um 08:33 schrieb Harald Oehlmann:
Am 14.04.2025 um 05:44 schrieb et99:
I've been experimenting with placing widgets inside a canvas. When I
tried to test it's performance on lots of widgets (in a column) I am
seeing the last few widgets not being displayed when the code does
[winfo reqheight $content]
where content is a frame and the value returned is over 32768
(actually starts failing just shy of that value).
This naturally leads me to suspect there's a 16 bit issue here.
I'm testing on windows 10, with 8.6 and 9.0 and get the same results.
Unfortunately yes.
This is very annoying, specially in a virtual canvas, where scrolling
is used to display only a part.
And the biggest point is, that if you exceed the size, there is no
error, but display disruption, as widgets will be placed at negative
coordinates etc.
The last experience is on Windows...
You have hit another swamp to clean-up...
Sorry,
Harald
Tonts of Tk tickets on that:
https://core.tcl-lang.org/tk/tktview/3307625fff
I've been experimenting with placing widgets inside a canvas. When I tried to test it's performance on lots of widgets (in a column) I am seeing the last few widgets not being displayed when the code does
[winfo reqheight $content]
where content is a frame and the value returned is over 32768 (actually starts failing just shy of that value).
This naturally leads me to suspect there's a 16 bit issue here.
I'm testing on windows 10, with 8.6 and 9.0 and get the same results.
I've been experimenting with placing widgets inside a canvas. When I tried to test it's performance on lots of widgets (in a column) I am seeing the last few widgets not being displayed when the code does
[winfo reqheight $content]
where content is a frame and the value returned is over 32768 (actually starts failing just shy of that value).
Eric,
all tools by Csaba do not show this issue.
You may try scrollutil or tablelist.
Both perform great for large data.
Of cause, pure C widgets are faster: tktable,...
For csv, you have Ashoks widget.
All those widgets paint only the visible part and not (yet) the invisible. tablelist even has a callback to paint on demand.
Paul has shown this with a table a 20000 rows containing big images and it was fluent.
BWidget suffers of the limit.
BWidget is anyway a hack nowdays, as ttk support is poor.
20 years ago, it was a milestone..
Take care,
Harald
Am 14.04.2025 um 11:45 schrieb et99:
Ah, I thought so Harald. You have read my mind, as that's exactly what I was trying to do.
I was testing some wiki code, at https://wiki.tcl-lang.org/page/ A+scrolled+frame by Paul Walton (his sframe.tcl at the bottom) which worked quite well for a spreadsheet like tool to display some csv files with a matrix of entry widgets.
At least until I tried it on some large sample csv files I found at a csv site. It dies on the 1000 row files.
And thanks for the link to the ticket.
I begin to see why what to me has always seemed to be a missing piece of Tk, a -scrollable option for frames and toplevels.
I wonder how bwidgets and scrollutils handle large amounts of data. I have tried both but never with large amounts of data. It seems the answer is NOT to try to embed many thousands of entry widgets in a canvas.
Eric
On 4/13/2025 11:46 PM, Harald Oehlmann wrote:
Am 14.04.2025 um 08:33 schrieb Harald Oehlmann:
Am 14.04.2025 um 05:44 schrieb et99:
I've been experimenting with placing widgets inside a canvas. When I tried to test it's performance on lots of widgets (in a column) I am seeing the last few widgets not being displayed when the code does
[winfo reqheight $content]
where content is a frame and the value returned is over 32768 (actually starts failing just shy of that value).
This naturally leads me to suspect there's a 16 bit issue here.
I'm testing on windows 10, with 8.6 and 9.0 and get the same results. >>>>>
Unfortunately yes.
This is very annoying, specially in a virtual canvas, where scrolling is used to display only a part.
And the biggest point is, that if you exceed the size, there is no error, but display disruption, as widgets will be placed at negative coordinates etc.
The last experience is on Windows...
You have hit another swamp to clean-up...
Sorry,
Harald
Tonts of Tk tickets on that:
https://core.tcl-lang.org/tk/tktview/3307625fff
et99 <et99@rocketship1.me> posted:
Virtuallist should be a good candidate with 2**30 elements displayed as a breeze
https://wiki.tcl-lang.org/page/Virtuallist
It is based on a canvas and display only a part of the elements according to request.
the Hugelist is maybe better formatted to what you need ?
Olivier.
I've been experimenting with placing widgets inside a canvas. When I tried to test it's performance on lots of widgets (in a column) I am seeing the last few widgets not being displayed when the code does
[winfo reqheight $content]
where content is a frame and the value returned is over 32768 (actually starts failing just shy of that value).
This naturally leads me to suspect there's a 16 bit issue here.
I'm testing on windows 10, with 8.6 and 9.0 and get the same results.
Thanks for the suggestions. The purpose of my "little" project was to demonstrate that TCL/Tk was the best tool in a particular environment.
The user needed a tool to do a csv column cut operation on a csv
formatted text file, as an extension to a commercial text editor he was using.
Am 15.04.25 um 03:36 schrieb et99:commercial text editor he was using.
Thanks for the suggestions. The purpose of my "little" project was to demonstrate that TCL/Tk was the best tool in a particular environment. The user needed a tool to do a csv column cut operation on a csv formatted text file, as an extension to a
If I had to do it, I'd use tablelist. I've yet to find a use-case where you can't simply set an option to it to do what you want.
Christian
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 497 |
Nodes: | 16 (3 / 13) |
Uptime: | 25:11:08 |
Calls: | 9,794 |
Calls today: | 13 |
Files: | 13,749 |
Messages: | 6,188,097 |