From 486af85cee90e81424f6e5293a399fc308eee7b3 Mon Sep 17 00:00:00 2001 From: Venugopal Shivashankar Date: Thu, 12 Dec 2019 09:41:38 +0100 Subject: Doc: Document the Property function in QtCore The content for this lived on the wiki till now. Change-Id: I3e6a2cb7f97ab7021621b7c687299a3199134bb5 Reviewed-by: Friedemann Kleint Reviewed-by: Cristian Maureira-Fredes --- sources/pyside2/doc/extras/QtCore.Property.rst | 62 ++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 sources/pyside2/doc/extras/QtCore.Property.rst (limited to 'sources/pyside2/doc/extras') diff --git a/sources/pyside2/doc/extras/QtCore.Property.rst b/sources/pyside2/doc/extras/QtCore.Property.rst new file mode 100644 index 000000000..209704c46 --- /dev/null +++ b/sources/pyside2/doc/extras/QtCore.Property.rst @@ -0,0 +1,62 @@ +.. currentmodule:: PySide2.QtCore +.. _Property: +Property +******** + +Detailed Description +-------------------- + +The Property function lets you declare properties that +behave both as Qt and Python properties, and have their +setters and getters defined as Python functions. + +Here is an example that illustrates how to use this +function: + +.. code-block:: + :linenos: + +from PySide2.QtCore import QObject, Property + +class MyObject(QObject): + def __init__(self,startval=42): + QObject.__init__(self) + self.ppval = startval + + def readPP(self): + return self.ppval + + def setPP(self,val): + self.ppval = val + + pp = Property(int, readPP, setPP) + +obj = MyObject() +obj.pp = 47 +print(obj.pp) + +Properties in QML expressions +----------------------------- + +If you are using properties of your objects in QML expressions, +QML requires that the property changes are notified. Here is an +example illustrating how to do this: + +.. code-block:: + :linenos: + +from PySide2.QtCore import QObject, Signal, Property + +class Person(QObject): + def __init__(self, name): + QObject.__init__(self) + self._person_name = name + + def _name(self): + return self._person_name + + @Signal + def name_changed(self): + pass + + name = Property(str, _name, notify=name_changed) -- cgit v1.2.3