When writing a plugin in Python, one can add a list as property as following:
from System import Double
from System.Collections.Generic import List
prop = self.AddProperty(“Frequency”, , List[Double])
prop.AddAttribute(OpenTap.DisplayAttribute, “Frequency”, “Marker frequencies”, “Conditions”, 200)
prop.AddAttribute(OpenTap.UnitAttribute, “Hz”)
Can one do the same for dictionaries?
3 Likes
Hi Bram,
You would instantiate and create Dictionaries in Python SDK as under.
clr.AddReference("System.Collections")
from System.Collections.Generic import List, Dictionary
prop = self.AddProperty("MyDict", Dictionary[String, String](), Dictionary[String, String])
prop.AddAttribute(BrowsableAttribute, False)
self.MyDict["Hello"] = "World"
However, there is no direct GUI mapping for Dictionaries, so you’d have to set the Browsable attribute to False. You can operate on dictionaries the same way you work with native Python Dictionaries.
And if you’re going to be working with Dictionaries simply for storing data, you might as well directly use a native python Dictionary than instantiate a C# one.
MyDict = {'Hello' : 'World'}
Do you need a way to create and display a key-value pair on the GUI?
2 Likes