プロパティ値の変更の観測
この例では、プロパティ値への変更をリスニングする方法を説明します。この例では、次を使用します。
PostSet
イベント。次により事前定義されています: MATLAB®SetObservable
: プロパティPostSet
イベントをトリガーできるプロパティ属性addlistener
: リスナーを作成するハンドル クラス メソッド
classdef PropLis < handle % Define a property that is SetObservable properties (SetObservable) ObservedProp = 1 end methods function attachListener(obj) %Attach a listener to a PropListener object addlistener(obj,'ObservedProp','PostSet',@PropLis.propChange); end end methods (Static) function propChange(metaProp,eventData) % Callback for PostSet event % Inputs: matlab.metadata.Property object, event.PropertyEvent h = eventData.AffectedObject; propName = metaProp.Name; disp(['The ',propName,' property has changed.']) disp(['The new value is: ',num2str(h.ObservedProp)]) disp(['Its default value is: ',num2str(metaProp.DefaultValue)]) end end end
PropLis
クラスは、通常のメソッド (attachListener
) を使って、ObservedProp
プロパティにリスナーを追加します。PropLis
クラスがコンストラクターを定義する場合、コンストラクターには addlistener
の呼び出しを含めることができます。
リスナー コールバックは静的メソッド (propChange
) です。この関数を呼び出すときに MATLAB は 2 つの引数を渡します。
metaProp
—ObservedProp
のmatlab.metadata.Property
オブジェクトeventData
—event.PropertyEvent
オブジェクトはイベント特有のデータを含む。
これらの引数は、プロパティとイベントに関する情報を提供します。
インスタンスを作成し、その attachListener
メソッドを呼び出して PropLis
クラスを使用します。
plObj = PropLis; plObj.ObservedProp
ans = 1
plObj.attachListener plObj.ObservedProp = 2;
The ObservedProp property has changed. The new value is: 2 Its default value is: 1
参考
event.proplistener
| addlistener
| listener