2016-06-18 70 views
-1

我想找到一種編程方式來切換Matlab GUI中的切換按鈕(由GUIDE構建)。 該按鈕具有回調函數,該函數使用第二個輸入(eventdata,這很罕見)。但是,從GUI外部調用此函數失敗。我不只對開/關的視覺效果感興趣,而是引發適當的回調(取決於按鈕的狀態)。有任何想法嗎?如何以編程方式推送GUI中的切換按鈕?

+0

請添加失敗的代碼。 – Lati

+0

eventdata是一個無法保存或重用的對象。我想這是需要激活按鈕,但我無法自己生成它。 不像調用GUIDE(其中eventdata通常爲空)所做的其他回調,在這裏我發現它缺少。 buttom行是這樣的:我如何以編程方式切換該按鈕,就好像我用鼠標按下它一樣? – NoamG

回答

0

eventdata切換按鈕尚未定義(我正在使用v2012)。它被寫在回調函數下面,作爲註釋「eventdata reserved - 將在未來版本的MATLAB中定義」。因此,您可以在調用切換按鈕回調時使用任何值。例如,如果您的切換按鈕,標籤是togglebutton1其回調函數是togglebutton1_Callback

togglebutton1_Callback(handles.togglebutton1, 0, handles); 

將調用切換按鈕回調。如果要更改切換按鈕的狀態,則將其值設置爲1表示按下狀態,0表示未按下。

set(handles.togglebutton1, 'value', 1); 
+0

儘管Matlab保留了將事件數據保存以備將來使用的聲明,但在R2014中它已被使用。一探究竟。 您提供的解決方案已經過檢查。但是,它仍然不夠好,因爲在調用回調時,eventdata是更新狀態的按鈕所必需的。 – NoamG

+0

我終於可以用Matlab 2015b來測試它。正如我所看到的,切換按鈕已經傳遞了eventdata,它有兩個屬性:Source(它是切換按鈕屬性)和EventName。您仍然可以使用以下語句調用切換按鈕回調:「togglebutton1_Callback(handles.togglebutton1,[],句柄);」 – Lati

相關問題