現在の図では、コールバックが設定されているすべてのオブジェクトを見つける必要があります。より具体的には、空でないButtonDownFcnを持つすべてのオブジェクト。
たとえばfindobj(gca, '-regexp', 'ButtonDownFcn', '\s+')
、すべてを試しましたが、次のエラーが発生します。Warning: Regular expression comparison is not supported for the 'Callback' property: using ordinary comparison.
問題は、オブジェクトがすべて「クリック可能」であることを除いて、オブジェクトにタグなど、オブジェクトを一意に「定義」するものがないことです。それを行う簡単な方法はありますか?findobjまたはfindallを使用します。ありがとう。
findobj
'ButtonDownFcn'
警告にあるように、プロパティの正規表現の比較はサポートされていません。これはおそらく、プロパティの内容が必ずしもテキストではないために発生します(関数ハンドルにすることができます)。
for
図のすべてのオブジェクトに対してループを使用できます。
result = [];
hh = findobj(gcf);
for h = hh(:).'
if ~isempty(get(h, 'ButtonDownFcn'))
result = [result h];
end
end
または同等に使用できますarrayfun
:
hh = findobj(gcf);
ind = arrayfun(@(h) ~isempty(get(h, 'ButtonDownFcn')), hh);
result = hh(ind);
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加