0
A
回答
2
您是否使用指南或「綱領性」鬼?以下是程序化gui的一個小例子;類似的概念可能適用於GUIDE。 (我個人比較喜歡的編程GUI路線的更大的靈活性,再加上我總是最終無可挽回地打破任何嚮導GUI的創建...)
反正幾件事情要在這個例子說明:
- 使用gui的圖形處理UserData字段來存儲「全局」信息。這是在回調之間傳遞數據的一種方式。
需要在「無限」循環中的暫停語句,以便處理來自cb_button2的中斷。從Matlab help開始:「如果回調執行的對象的Interruptible屬性爲開啓狀態,則回調可能會中斷,但只有當它或觸發的函數調用drawnow,figure,getframe,pause或waitfor 「。
function my_gui(varargin) mainfig = figure; out.h_button1 = uicontrol(mainfig,... 'Style','pushbutton',... 'Units','Normalized',... 'Position',[0,0.5,1,0.5],... 'String','Button 1',... 'Callback',@cb_button1); out.h_button2 = uicontrol(mainfig,... 'Style','pushbutton',... 'Units','Normalized',... 'Position',[0,0,1,0.5],... 'String','Button 2',... 'Callback',@cb_button2); out.button2_flag = 0; %flag indicating whether button 2 has been pressed yet set(mainfig,'UserData',out);%store "global" data in mainfig's UserData (for use by callbacks) function cb_button1(varargin) out = get(gcbf,'UserData'); %gcbf: handle of calling object's figure while ~out.button2_flag disp('Aaaahhh, infinite loop! Quick press Button 2!'); out = get(gcbf,'UserData'); %reload "global" data pause(0.1); %need this so this callback may be interrupted by cb_button2 end disp('Thanks! I thought that would never end!'); function cb_button2(varargin) out = get(gcbf,'UserData'); %gcbf: handle of calling object's figure out.button2_flag = 1; set(gcbf,'UserData',out); %save changes to "global" data
相關問題
- 1. MATLAB GUI中的多個回調函數
- 2. Matlab GUI,在回調函數之間共享數據
- 3. 如何在Matlab GUI中傳遞call_backs之間的值
- 4. Matlab的添加兩個傳遞函數
- 5. 在兩個函數之間傳遞數組值
- 6. 使用回調在兩個片段之間傳遞數據
- 7. 傳遞兩個html之間的值
- 8. 在MATLAB GUI中使用句柄在函數之間傳遞變量
- 9. 幫助在Ajax回調中的函數之間傳遞變量
- 10. 在Matlab中的GUI之間傳遞變量
- 11. 在兩個函數之間傳遞對象Around函數 - AOP
- 12. MATLAB GUI中的迴路中的回調函數
- 13. matlab GUI回調
- 14. 在JavaScript函數之間傳遞Json值
- 15. 每個函數之間傳遞參數
- 16. 從MATLAB GUI傳遞數據到另一個函數
- 17. 傳遞兩個值的函數,而不調用另一個函數兩次
- 18. 將值傳遞給fadeOut回調函數
- 19. 將值傳遞給回調函數
- 20. 在MATLAB函數之間傳遞數據的有效方式
- 21. 在兩個TableView之間傳遞數據
- 22. 在兩個UIViewControllers之間傳遞數據
- 23. MATLAB的GUI回調沒有設置另一個回調的值?
- 24. 或兩個函數之間的調用
- 25. Node.JS module.exports用於在兩個函數之間傳遞參數?
- 26. PL/SQL:從兩個函數之間傳遞的遊標獲取
- 27. 將數組傳遞給gui在matlab中
- 28. 在MATLAB中的兩個函數之間共享一個變量?
- 29. 兩個值之間的Ocillate函數javascript
- 30. 從GUI傳遞值到m文件MATLAB
+1的消息顯示:-)好了,並回答太 –
而不是暫停(),你可以設置按鈕的回調是interuptable。它只是uicontrol的另一個屬性,所以您可以在創建時設置它。 –