Skip to content

Commit 1261a66

Browse files
Fix WidgetContainer assertion failure - add RemoveAllWidgets in generated destructor
1 parent 77e4c55 commit 1261a66

2 files changed

Lines changed: 6 additions & 0 deletions

File tree

core/code_generator.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,8 @@ def generate_cpp_for_interface(self, iface: Interface, project: Project) -> str:
285285
cpp += "}\n\n"
286286

287287
cpp += f"{s.class_name}::~{s.class_name}()\n{{\n"
288+
# Remove all child widgets from the container before deletion to satisfy WidgetContainer assertion
289+
cpp += " RemoveAllWidgets(false, false);\n"
288290
for wid in iface.widgets.values():
289291
if wid.class_name not in self.NON_WIDGET_TYPES:
290292
var_name = self._get_var_name(wid)

docs/CORE_ARCHITECTURE_EN.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -534,15 +534,19 @@ Priority of user code in event handlers:
534534
## User Code Regions
535535

536536
### C++ Version
537+
- `// [[[USER_INCLUDES]]]` - Custom header includes
538+
- `// [[[USER_FORWARD_DECLARATIONS]]]` - Forward declarations and enum definitions (before class definition)
537539
- `// [[[USER_DECLARATIONS]]]` - Member declarations
538540
- `// [[[USER_INIT]]]` - Initialization code
539541
- `// [[[USER_DESTROY]]]` - Cleanup code
540542
- `// [[[USER_DRAW]]]` - Custom drawing code
541543
- `// [[[USER_UPDATE]]]` - Update logic
542544
- `// [[[USER_FUNCTIONS]]]` - Custom functions
545+
- `// [[[USER_POST_CLASS]]]` - Post-class definitions (helper classes, etc., after class definition)
543546
- `// [[[HANDLER_widget_id]]]` - Event handler code
544547

545548
### C# Version
549+
- `// [[[USER_INCLUDES]]]` - Custom using statements
546550
- `// [[[USER_DECLARATIONS]]]` - Member declarations
547551
- `// [[[USER_INIT]]]` - Initialization code
548552
- `// [[[USER_DESTROY]]]` - Cleanup code

0 commit comments

Comments
 (0)