Open cbfbl opened 1 month ago
Hi, would you by any chance be able to help investigate what would be needed to fix this?
To my understanding, you may be better off switching to 3.0.0 previews for the moment:
development
):
pip install arcade==3.0.0.dev36
The fix can be easily done by copying the list of the children, no idea how terrible it is for the performance.
Original code:
def clear(self):
"""
Remove all widgets from UIManager
"""
for layer in self.children.values():
for widget in layer:
self.remove(widget)
Possible fix:
def clear(self):
"""
Remove all widgets from UIManager
"""
for layer in self.children.values():
layer = layer[:]
for widget in layer:
self.remove(widget)
I did not know 2.6 is EOL, thanks for notifying me, will try to upgrade to 3.0.0 preview.
I did not know 2.6 is EOL, thanks for notifying me, will try to upgrade to 3.0.0 preview.
That's understandable. It's why we're considering a final 2.6.18 release.
will try to upgrade to 3.0.0 preview.
The biggest changes are in GUI, a totally reworked camera system, and the shape drawing commands. Note that the dev previews use pyglet 2.1's dev previews, which means there will be pyglet changes as well. For Arcade, rendering changes also mean you have far more freedom to use the latest pyglet features.
@cbfbl
2.6-py-312
branch?I'd be glad to help you make a PR even if it's still somewhat of a hypothetical release at the moment.
Bug Report
arcade.gui UIManager clear does not remove all ui widgets
System Info
Arcade 2.6.17
vendor: AMD renderer: AMD Custom GPU 0405 (radeonsi, vangogh, LLVM 17.0.6, DRM 3.54, 6.1.52-valve16-1-neptune-61) version: (4, 6) python: 3.11.10 (main, Nov 10 2011, 15:00:00) [GCC 13.2.0] platform: linux
Actual behavior:
I have 2 widgets added by the add method of UImanager when I call the clear method only one of the widgets is removed
Expected behavior:
All widgets should be removed from the UImanager
Steps to reproduce/example code:
self.gui_manager = gui.UIManager() self.gui_manager.add(widget1) self.gui_manager.add(widget2) self.gui_manager.clear() ############################# the result: len(self.gui_manager.children().values()) == 1
Enhancement request:
What should be added/changed?
Documentation request:
What documentation needs to change?
Where is it located?
What is wrong with it? How can it be improved?