我已經使用Matlab GUIDE在Matlab中編寫了一個GUI程序。 在工具欄上創建了一個工具,並編寫了如下所示的右鍵單擊回調函數,但是當我在GUI上右鍵單擊該工具時,沒有響應。Matlab GUIDE工具條上的工具的ButtonDownFcn不起作用
function MyTool_ButtonDownFcn(hObject, eventdata, handles)
waitfor(msgbox('Hello button down function','Hello button down'));
disp('Hello disp');
從屬性檢查器,ButtonDownFcn的價值是:
@(hObject,eventdata)main('MyTool_ButtonDownFcn',hObject,eventdata,guidata(hObject))
我嘗試使用帶有回調函數的另一個按鈕,執行「鍵盤」進行調試。
function bugfindbutton_ClickedCallback(hObject, eventdata, handles)
keyboard
這證實了與工具的ButtonDownFcn
關聯功能MyTool_ButtonDownFcn(hObject, eventdata, handles)
的存及其不被任何其它功能中刪除。但是,右鍵單擊該工具不會提供msgbox或命令窗口輸出。
我想在「MyTool」切換按鈕鼠標右鍵(在工具欄上的自定義工具)執行MyTool_ButtonDownFcn
功能。我該怎麼做?
切換工具按鈕' MyTool'具有有效的'OnCallback'和'OffCallback'功能。因此不能將'ClickedCallback'用於一個更多的任務。通過'MouseReleasedCallback',函數對兩者都執行,左鍵單擊釋放和右鍵單擊釋放。所以不能使用這個回調,因爲它會干擾'OnCallback'和'OffCallback'的左鍵單擊。感謝有關'findjobj'的信息,儘管它沒有解決問題。我想添加一個更多的功能到'MyTool'切換按鈕。我認爲右鍵單擊是唯一的方法。有更多的想法做到這一點? – ItzMe
@Govinda我已經更新了示例,使其更加透徹。你可以肯定地使用'OnCallback'和'OffCallback'與'MouseReleasedCallback'結合使用,你只需要進行回調檢查它是被點擊的正確按鈕。查看我的更新。 – Suever
這個工作,直到我意識到'handle'需要在回調函數內更新。回調函數具有'回調(hObject,eventdata,句柄)'語法,所以我沒有具體問。但是我也需要'handle'來在回調中更新。你能幫我做到嗎? – ItzMe