def create_property(self, name): '''Create a new property at runtime. .. warning:: This function is designed for the Kivy language, don't use it in your code. You should declare the property in your class instead of using this method. :Parameters: `name`: string Name of the property The class of the property cannot be specified, it will be always an :class:`~kivy.properties.ObjectProperty` class. The default value of the property will be None, until you set a new value. >>> mywidget = Widget() >>> mywidget.create_property('custom') >>> mywidget.custom = True >>> print mywidget.custom True ''' prop = ObjectProperty(None) prop.link(self, name) prop.link_deps(self, name) self.__properties[name] = prop setattr(self, name, prop)
def create_property(self, name): '''Create a new property at runtime. .. warning:: This function is designed for the Kivy language, don't use it in your code. You should declare the property in your class instead of using this method. :Parameters: `name`: string Name of the property The class of the property cannot be specified, it will always be an :class:`~kivy.properties.ObjectProperty` class. The default value of the property will be None, until you set a new value. >>> mywidget = Widget() >>> mywidget.create_property('custom') >>> mywidget.custom = True >>> print mywidget.custom True ''' prop = ObjectProperty(None) prop.link(self, name) prop.link_deps(self, name) self.__properties[name] = prop setattr(self.__class__, name, prop)
def test_objectcheck(self): from kivy.properties import ObjectProperty a = ObjectProperty(False) a.link(wid, 'a') a.link_deps(wid, 'a') self.assertEqual(a.get(wid), False) a.set(wid, True) self.assertEqual(a.get(wid), True)
def test_objectcheck(self, set_name): from kivy.properties import ObjectProperty a = ObjectProperty(False) if set_name: a.set_name(wid, 'a') a.link_eagerly(wid) else: a.link(wid, 'a') a.link_deps(wid, 'a') self.assertEqual(a.get(wid), False) a.set(wid, True) self.assertEqual(a.get(wid), True)