私はMATLABのGUIプログラミングの初心者です。Matlab:別の関数で呼び出すときにコールバック関数からGUIハンドル値を取得する
GUIDEを使用してGUIを作成するとしましょう。作成機能では、私は別の関数を呼び出す
MyGUI_OpeningFcn(hObject, eventdata, handles, varargin)
、
SamplingRate_Callback(handles.SamplingRate, eventdata, handles)
は
handles.a = 1;
handles.b = 2;
handles.c = 3;
handles
ST、
function SamplingRate_Callback(hObject, eventdata, handles)
として定義しますru30は、SamplingRate_Callback
関数内で正しく更新されます。私が午前問題は、私は
function handles = SamplingRate_Callback(hObject, eventdata, handles),
に機能を変更しない限り、私は呼び出し元の関数、MyGUI_OpeningFcn
にデータを返すことができないということです。私はguidata(gcf, handles)
とguidata(hObject, handles)
を使用しようとしましたが、いずれも動作しません。
この問題を解決することはできますか?
また、guidata(gcf, handles)
とguidata(hObject, handles)
のどちらを使用するかはわかりません。
ありがとうございました!
こんにちは、あなたの答えに感謝します。はい、それはうまくいくでしょう。私はなぜSamplingRate_CallbackがGUI要素を使って直接呼び出されたのか理解できないと思いますが、単純にguidataを使って永続ハンドル値を保存できますが、同じ関数を別の方法で呼び出すとguidataは機能しません。それは理にかなっていますか?なぜなのかご存知ですか? – user1340654