Hi,
I want to specify a component.
If ‘a’ is ‘0’,this can only choose the default first.
I didn’t find a solution.
layer = Glyphs.font.selectedLayers[0] # current layer
component = "g7694"
a = component
component = layer.components[a] # first component
layer.components[a].selected = True
You can have the same component twice. You can check for the componentName
attribute though:
compname = "a"
print [c for c in Layer.components if c.componentName == compname]
… returns a list of all components that point to the glyph with the specified name.
The list comprehension in python is very difficult to understand. I can better understand the code like this:
compname = "a"
comp = None
for c in Layer.components:
if c.componentName == compname:
comp = c
print comp
This only gets the last matching component. To do the same as the list comprehension above:
compname = "a"
comps = [] # list of "a" components
for c in Layer.components:
if c.componentName == compname:
comps.append(c)
print comps