2012-09-27 15 views
4

我想向圖形工具欄添加一個新的切換按鈕。當它被點擊時,我想「解開」任何其他被切換的按鈕。例如,如果按下「旋轉」或「縮放」切換按鈕,我想解除它們及其效果。 簡單地獲取他們的所有手柄不起作用,因爲這不會使其效果無效。解開所有圖形工具欄按鈕

回答

2

您應該首先找到工具欄的所有子項。您可以通過下面的命令做(假設currentToggleButton是一個句柄到當前的切換按鈕):

get(get(currentToggleButton,'Parent'),'Children'); 

然後執行以下操作:

set(children,'State','off'); 

當然,你需要返回的狀態您當前的按鈕爲on

set(currentToggleButton,'State','on'); 

順便說一句,如果你使用的指南,你可以添加zoomrotatepan爲預先定義的工具。在這種情況下,Matlab將自動處理切換。


爲了關閉縮放/平移/旋轉的效果,你可以這樣做:

zoom('off') 
pan('off') 
rotate3d('off') 

,或者您可以使用另一種語法的版本(如@Eitan也提到了)

zoom off 
pan off 
rotate3d off 
+0

謝謝:)但這不會做 - 簡單地將他們的狀態設置爲「關閉」不會使他們的效果停止。也就是說,如果我點擊旋轉按鈕然後運行你的代碼,的確,它會呈現爲不動,但是當我拖動我的鼠標時它仍然會旋轉我的圖。 – olamundo

+0

@noam,在這種情況下,您應該根據自己需要執行旋轉('off')'或縮放('off')'命令。 –

+0

@Andrey您的意思是'zoom off','rotate3d off' ,'pan off'等... –