2013-02-14 269 views
2

我認爲它應該非常簡單,我想要做的事情,基本上我有一個編輯框以百分比顯示一個值,另一個我想要更新以顯示原始值。我已經使用EDIT1(百分比)在下列代碼回調嘗試:動態更新Matlab GUI中的文本

currentKey = str2num(get(gcf,'CurrentKey')); 
percent = str2num(get(handles.edit1,'String')); 
if ~isnan(currentKey) && ~isnan(percent) && 0<=percent && percent<=100 
    set(handles.edit2,'String',num2str(2*percent)) 
end 

但如果我先單擊第1之外,只會更新第二個編輯框。任何人都知道我應該做什麼?

謝謝!

回答

1

我覺得這個環節應該可以幫助您:

How can I make the text that I enter into an edit text box update dynamically?

解決方案:

此增強已是Release 2011a(R2011a)被納入。對於以前的產品版本,請閱讀以下任何可能的解決方法:

這是MATLAB中編輯框UICONTROL的預期行爲。

您可以嘗試使用'keypressfcn'來獲取鍵盤輸入。所附的兩個文件展示了實時文本更新的能力。當您在上方編輯框中輸入文本時,文本將在您輸入時被複制到其下方的編輯框中。

  1. 請下載以下兩個文件: test_keypressfcn.m test_keypressfcn.fig
  2. 執行程序。
  3. 將出現一個GUI。在GUI中顯示的上部編輯框中輸入文本。
  4. 觀察下部編輯框中的文本是動態更新的還是實時更新,因爲您在上部編輯框中輸入測試。

請注意,這僅適用於連續輸入到編輯框中的文本。如果您在編輯框中輸入的單詞之間鍵入,gui將無法按預期方式執行。你將需要實現類似於這個例子中的邏輯來獲得你想要的行爲。