如何在Python FMX GUI应用中获取Form上的所有组件列表
获取DelphiFMX4Python窗体上的所有组件列表
在DelphiFMX4Python中,Form作为容器类组件,自带Children属性,通过它可以直接获取所有直接挂载在Form上的子组件:
# 遍历Form的直接子组件 for component in self.Children: print(f"组件类型: {type(component).__name__}, 组件名称: {component.Name}")
如果需要获取所有嵌套层级的组件(比如放在Panel、GroupBox这类子容器里的组件),可以通过递归遍历的方式实现:
def get_all_components(container): components = [] for comp in container.Children: components.append(comp) # 递归处理子容器组件 if hasattr(comp, 'Children'): components.extend(get_all_components(comp)) return components # 获取当前Form下的所有组件 all_components = get_all_components(self) # 输出组件信息 for comp in all_components: print(f"组件类型: {type(comp).__name__}, 组件名称: {comp.Name}")
说明:
- 每个组件的
Name属性对应你创建组件时可以自定义的标识(比如你代码里的imgDirt,如果设置self.imgDirt.Name = 'imgDirt',就能在输出里对应上) type(component).__name__可以获取组件的类名(如Image、Button、Memo等)
内容的提问来源于stack exchange,提问作者Shaun Roselt
相关产品推荐
相关产品推荐

