プロパティ値の変更の観測
この例では、プロパティ値への変更をリスニングする方法を説明します。この例では、次を使用します。
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