The following code should produce a read-only string, but it can be edited:
@property(String)
@attribute(Browsable(True))
def ReadOnlyString(self):
return "Read-only string!"
In KS8400 it looks like this:

A workaround can be done by using the EnabledIf attribute:
@property(String)
@attribute(Browsable(True))
@attribute(EnabledIf("IsReadOnly", True))
def ReadOnlyString(self):
return "Read-only string!"
@property(Boolean)
@attribute(Browsable(False))
def StringIsReadOnly(self):
return False
The following code should produce a read-only string, but it can be edited:
In KS8400 it looks like this:
A workaround can be done by using the EnabledIf attribute: