2012-09-21 81 views
1

所以基本上我試圖給出一個選項,通過在GUI中的編輯框中按Enter鍵直接繪製數據,而不必按下與繪製數據相關聯的按鈕。但是我遇到了一個問題,在提交到按鈕之前它沒有正確更新編輯框句柄(例如,我將輸入23並按Enter鍵,這應該繪製23個數據週期,但當前寄存器爲空字符串)。但如果我輸入兩次,那麼它確實正確地執行該功能。我得到的代碼是:Matlab GUI編輯框輸入不工作

function edit1_KeyPressFcn(hObject, eventdata, handles) 
currentKey = get(gcf,'CurrentKey'); 
if currentKey == 'return' 
    pushbutton1_Callback(handles.pushbutton1, eventdata, handles) 
    guidata(gcf,handles) 
end 

任何想法?謝謝!

+0

我遇到過這個問題一次。我認爲有某種3d方的DLL可以讀取按鍵。如果我設法回憶它,我會告訴你。 –

回答

0

編輯框上的哪個屬性用於檢索輸入的數據?

您應該發現'string'屬性與用戶輸入的內容相匹配,但'value'屬性在編輯開始前包含編輯框中的數據。處理這種

一種方法是調用:

set(handles.edit1,'value',str2double(get(handles.edit1,'string'))) 

調用按鈕回調之前。

+0

@ user1689801 - 這是否解決了您的問題? – grantnz