0

GUIに編集ボックスがあります。ユーザーは編集ボックスに番号を入力してから、プッシュボタンを押します。プッシュボタンが押されると、外部機能が呼び出されます。外部機能の場合、編集ボックスに入力した番号が必要です。「ハンドル」を使用して編集ボックスに入力されたデータを取得するにはどうすればよいですか?

これは私のオープニング関数のコードです

% --- Executes just before NEWSTALLGUI is made visible.
function NEWSTALLGUI_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to NEWSTALLGUI (see VARARGIN)

% Choose default command line output for NEWSTALLGUI
handles.output = hObject;

% Update handles structure
guidata(hObject, handles);
set(handles.EnterSpeed,'string','0');

% UIWAIT makes NEWSTALLGUI wait for user response (see UIRESUME)
% uiwait(handles.figure1);

これは私の編集ボックスのコードです

function EnterSpeed_Callback(hObject, eventdata, handles)
% hObject    handle to EnterSpeed (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of EnterSpeed as text
%        str2double(get(hObject,'String')) returns contents of EnterSpeed as a double
user_speed=str2double(get(handles.EnterSpeed,'string'));

これは私の押しボタンのコードです

% --- Executes on button press in Calculate.
function Calculate_Callback(hObject, eventdata, handles)
% hObject    handle to Calculate (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
Newfunction(user_speed);
4

1 に答える 1

0

これを見てください: GUI の問題、ハンドルを使用して変数を保存できない

基本的に以下を使用します: editnum = get(editbox_handle,'string');

次に、おそらくそれを数値に変換したいと思うでしょう。

編集:

function NEWSTALLGUI_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to NEWSTALLGUI (see VARARGIN)

% Choose default command line output for NEWSTALLGUI
handles.output = hObject;
handles.user_speed = 0;


% Update handles structure
guidata(hObject, handles);
set(handles.EnterSpeed,'string','0');

% UIWAIT makes NEWSTALLGUI wait for user response (see UIRESUME)
% uiwait(handles.figure1);

-

function EnterSpeed_Callback(hObject, eventdata, handles)
% hObject    handle to EnterSpeed (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of EnterSpeed as text
%        str2double(get(hObject,'String')) returns contents of EnterSpeed as a double
handles.user_speed=str2double(get(handles.EnterSpeed,'string'));

-

function Calculate_Callback(hObject, eventdata, handles)
% hObject    handle to Calculate (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
Newfunction(handles.user_speed);

-

代わりに次のものを使用できると思います:

Newfunction(str2double(get(handles.EnterSpeed,'string')));

しかし、あなたのボートを浮かせるものは何でも。また、Newfunction を呼び出す前に、入力も数値かどうかを確認する必要があります... 数値以外で str2double を使用すると、"[]" が返されます。

于 2013-03-11T21:39:29.387 に答える