4
我想向圖形工具欄添加一個新的切換按鈕。當它被點擊時,我想「解開」任何其他被切換的按鈕。例如,如果按下「旋轉」或「縮放」切換按鈕,我想解除它們及其效果。 簡單地獲取他們的所有手柄不起作用,因爲這不會使其效果無效。解開所有圖形工具欄按鈕
我想向圖形工具欄添加一個新的切換按鈕。當它被點擊時,我想「解開」任何其他被切換的按鈕。例如,如果按下「旋轉」或「縮放」切換按鈕,我想解除它們及其效果。 簡單地獲取他們的所有手柄不起作用,因爲這不會使其效果無效。解開所有圖形工具欄按鈕
您應該首先找到工具欄的所有子項。您可以通過下面的命令做(假設currentToggleButton
是一個句柄到當前的切換按鈕):
get(get(currentToggleButton,'Parent'),'Children');
然後執行以下操作:
set(children,'State','off');
當然,你需要返回的狀態您當前的按鈕爲on
。
set(currentToggleButton,'State','on');
順便說一句,如果你使用的指南,你可以添加zoom
,rotate
和pan
爲預先定義的工具。在這種情況下,Matlab將自動處理切換。
爲了關閉縮放/平移/旋轉的效果,你可以這樣做:
zoom('off')
pan('off')
rotate3d('off')
,或者您可以使用另一種語法的版本(如@Eitan也提到了)
zoom off
pan off
rotate3d off
謝謝:)但這不會做 - 簡單地將他們的狀態設置爲「關閉」不會使他們的效果停止。也就是說,如果我點擊旋轉按鈕然後運行你的代碼,的確,它會呈現爲不動,但是當我拖動我的鼠標時它仍然會旋轉我的圖。 – olamundo
@noam,在這種情況下,您應該根據自己需要執行旋轉('off')'或縮放('off')'命令。 –
@Andrey您的意思是'zoom off','rotate3d off' ,'pan off'等... –