對於matlab中的一些對象,set(hobject, 'enable', 'inactive')
命令將正常工作。
爲他人,像工具欄按鈕,只有set(hobject, 'enable', 'off')
。設置命令有兩種設置屬性值的可能性
是我的一套listObjects
,
是有什麼樣set(listObjects, 'enable', ['inactive'|'off'])
在我的屬性設置爲「無效」,如果它是有效的,而「關」,如果它不是一個有效的財產?
對於matlab中的一些對象,set(hobject, 'enable', 'inactive')
命令將正常工作。
爲他人,像工具欄按鈕,只有set(hobject, 'enable', 'off')
。設置命令有兩種設置屬性值的可能性
是我的一套listObjects
,
是有什麼樣set(listObjects, 'enable', ['inactive'|'off'])
在我的屬性設置爲「無效」,如果它是有效的,而「關」,如果它不是一個有效的財產?
您可以先查看它們的'enable'
屬性,查看對象的「類型」。
enableStatus = get(listOfObjects,'enable');
%# identify who is active and who is on
activeObjects = listOfObjects(strcmp(enableStatus,'active'));
onObjects = listOfObjects(strcmp(enableStatus,'on'));
%# set proper status
set(activeObjects,'enable','inactive')
set(onObjects,'enable','off')
如果您只有兩個需要檢查的值,則可以使用try/catch
塊。
try
set(hobject,'enable','inactive');
catch exception
if strcmp(exception.identifier,'MATLAB:hg:propswch:FindObjFailed')
set(hobject,'enable','off');
else
throw(exception)
end
end
這樣,它會檢查您第一次嘗試設置值,如果它是可以接受的。如果不是,它會嘗試下一個選擇。如果錯誤是由於其他原因(例如,您輸入了無效的屬性名稱),則會將錯誤引發至屏幕。
順便說一句,錯誤標識符:MATLAB:hg:propswch:FindObjFailed
是我在我的機器上,當我試圖設置一個屬性不會接受的值。雖然我懷疑它應該是相同的,但你可能想看看你在你的機器上得到了什麼,並在strcmp
函數中使用它。