1

したがって、基本的には、データのプロットに関連するプッシュボタンを押す代わりに、GUI の編集ボックス内で Enter キーを押すことで、データを直接プロットするオプションを提供しようとしています。しかし、プッシュボタンに送信する前に編集ボックスのハンドルが正しく更新されないという問題が発生しています (たとえば、23 と入力して Enter キーを押すと、23 期間のデータがプロットされますが、現在のレジスタは空の文字列として表示されます)。 )。しかし、Enter キーを 2 回押すと、関数が正しく実行されます。私がこれのために持っているコードは次のとおりです。

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

何か案は?ありがとう!

4

1 に答える 1

0

入力したデータを取得するために、編集ボックスのどのプロパティを使用していますか?

「文字列」プロパティはユーザーが入力したものと一致しますが、「値」プロパティには編集が開始される前の編集ボックスのデータが含まれていることがわかります。

これを処理する 1 つの方法は、次のように呼び出すことです。

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

ボタンのコールバックを呼び出す前。

于 2012-09-22T10:21:02.933 に答える