2012-06-08 1 views
0

"메인"윈도우에서 다른 윈도우 "List"를 여는 버튼이 있습니다. 목록 창에는 두 개의 목록 상자가 있습니다. 왼쪽에는 하나의 이름이 있고 오른쪽에는 이름을 추가합니다. 그러나 나는 한 번 나는 목록 "창"는 버튼의 " ''확인을 클릭합니다"메인 "창 목록에 추가 이름을 통과 할 수 없습니까하나의 m 파일에서 다른 m 파일로 핸들을 전달하십시오.

function Done_Button_Callback(hObject, eventdata, handles) 

    SelectedFaults = get(handles.SelectedFaults_Listbox,'String'); 
    set(Main, handle.Faults_Listbox,'String',SelectedFaults) 
    close(Insert_Fault) 

I가지고있어 오류. :

??? No appropriate method, property, or field Faults_Listbox for class handle. 

Error in ==> Insert_Fault>Done_Button_Callback at 380 

set(Main, handle.Faults_Listbox,'String',SelectedFaults) 

Error in ==> gui_mainfcn at 96 
    feval(varargin{:}); 
    Error in ==> Insert_Fault at 42 

gui_mainfcn(gui_State, varargin{:}); 
??? Error while evaluating uicontrol Callback 

모두 m 파일. 내가 붙어있어. 같은 디렉토리에있는 당신의 도움을 주셔서 감사

답변

1

변수 "핸들"정의하는 방법을 보여주지 않습니다. 당신이 "핸들"을 의미했다 귀하의 코드 ?이 경우, 핸들 구조는 Insert_Fault 그림과 함께 제공되며 핸들과는 관련이 없습니다 구조.

주 창에서 목록 상자를 수정하려면 주 그림에서 Insert_Fault 그림으로 Faults_Listbox의 핸들을 전달할 수 있습니다 (예 : userdata or appdata).

다음 코드는 원하는대로 수행해야합니다. 홈페이지에서

:

% Callback of a button in main that opens the Insert_Fault figure 
function Open_Insert_Fault_Callback(hObject, eventdata, handles) 
Insert_Fault('UserData', struct('Mainhandles', handles)); 

Insert_Fault에서는 :

조금 코드를 조정에 ...
function Done_Button_Callback(hObject, eventdata, handles) 
SelectedFaults = get(handles.SelectedFaults_Listbox,'String'); 

userdata=get(handles.figure1, 'UserData'); 
Mainhandles=userdata.mainhandles; 

set(Mainhandles.Faults_Listbox,'String',SelectedFaults) 
close(Insert_Fault) 
+0

환상적인 일했다. 당신의 도움을 주셔서 대단히 감사합니다 – VMI