|Welcome to the Monastery|
Tk performance and "UpdateWrapper: Failed to create container"by olgo (Acolyte)
|on Jan 17, 2022 at 09:53 UTC||Need Help??|
olgo has asked for the wisdom of the Perl Monks concerning the following question:
Once again, I need my fellow monks' advice regarding Tk.
After exchanging ActiveState for Strawberry and Win32::GUI for Tk, I have been struggling to refactor my old GUI into a Tk equivalent.
I am more or less back to where I started out, the GUI looks reasonably the same, but I am still struggling with a number of problems:
1. The GUI is significantly slower than the (native, so expected) Win32::GUI in terms of defining the GUI. I should mention that the GUI consists of a number of grids, which I have (with the help of you monks) used the grid() packer for. The size of the grid is quite large (up to thousands of cells), so it takes seconds to draw it.
2. When the grids get big and I flip between different tabs in a top notebook widget, I quite often get a "UpdateWrapper: Failed to create container" exit error message. Haven't been able to pinpoint exactly why/where this happens, but it appears when I stress the GUI.
Sometimes when stopping execution I can see that I am deeeply nested into Tk callbacks and whatnots, making me suspect that much of what is taking time is stuff that isn't providing any usable functionality for me.
Thus, some questions:
1. Is it possible to disable the GUI Event mechanisms, like the clicking on a button (temporarily while dealing with another event)? I am thinking that this might prove less stressful to the GUI.
2. Is it possible to disable the binding of variables to widgets, like -textvariable for Entry widgets? Just guessing this might speed things up a bit.
3. I have already replaced some really slow superwidgets for leaner alternative (e.g. JBrowseEntry for BrowseEntry) but maybe there are leaner widgets still?
4. What else?
As always, any help is deeply appreciated.