2013-03-18 169 views
0

我目前工作的一個matlab的GUI和經過一些初學者與數據處理,我還是比較滿意的結果的問題。matlab的GUI變得沒有反應或部分關閉

現在只是一個打嗝:當程序完成運行時,圖形用戶界面變得沒有反應,按鈕和文本元素消失,所有我能看到的是背景。

我爲關閉所有掃描徹底的功能;聲明等,但沒有什麼。

我如何返回「乾淨」的貴,所以我可以把更多的數據?我是否需要將gui放在一個常量while循環中?

最良好的祝願 克里斯

回答

0

你可以做到以下幾點:

修改您的控件的屬性是中斷:

set(handles.figure, 'Interruptible','on'); 

創建基於按下一個確定的按鍵組合的回調函數。

set(KeyPressFcn, @resume_fcn); 

創建解決問題的回調函數。

function resume_fcn() 
    if eventdata.Key = ... 
    exit; 
    end 
end 

但是,數據的一致性可能會丟失。如果你不想返回'乾淨'的貴,你可以鍵入:

delete(get(0,'Children')) 
+0

謝謝你的想法,我會嘗試這個,當我今天上班! 但是你能向我解釋一下,爲什麼gui'首先關閉'?它應該運行,直到我選擇關閉它? 歡呼聲, – Chris 2013-03-19 05:14:29

+0

我不知道這是問的問題...如果,因爲已經假定,在UI變得反應遲鈍,同時運行一些計算,這是因爲MATLAB將不處理事件隊列,而有其他代碼運行。在這種情況下,您可以添加一個調用來在您的循環中的某處進行提取。如果情況並非如此,並且在計算之後GUI會「消失」,那麼幾乎可以肯定的是,這會導致一些錯誤的代碼行,並且應該使用調試器逐步執行代碼以查找違規行。 – wakjah 2013-03-19 15:50:52