2012-12-14 4 views
0

GUIDE로 만든 GUI에서 팝업 메뉴를 채우려고합니다. 다음과 같이 내가하고 있어요 : 나는 popup_test_CreateFcn 방법 안에이 일을 해요 (I가 비록 바로 이곳 정말 모르겠어요)팝업 메뉴에 디렉토리 파일 넣기

TestFiles = dir([pwd '/test/*.txt']); 
TestList = []; 

for i = 1:length(TestFiles) 
    filename = TestFiles(i).name; 
    TestList = [TestList filename]; 
end 

set(handles.popup_test,'string',TestList); 

.

나는이가 계속 GUI를 실행하려고 할 때 :

??? Attempt to reference field of non-structure array. 

Error in ==> init>popup_test_CreateFcn at 101 
set(handles.popup_test,'string',TestList); 

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

Error in ==> init at 19 
    gui_mainfcn(gui_State, varargin{:}); 

Error in ==> @(hObject,eventdata)init('popup_test_CreateFcn',hObject,eventdata,guidata(hObject)) 


??? Error using ==> struct2handle 
Error while evaluating uicontrol CreateFcn 

그래서 set() 방법은 나를 TestList와 팝업 메뉴를 채우는 허용하지 않습니다 어떤 이유.

의견이 있으십니까?

미리 감사드립니다. 당신이 당신의 프로그램을 실행할 때, 가장 먼저 호출되는 함수를 사용하면 popup_test_CreateFcn 내부 set(handles.popup_test,'string',TestList);을 할 때 "create functions"

그래서, 함수가 단지 "opening function" 후 알려져 있기 때문에 handles 무엇인지 모르는 것을

답변

1

참고. ("create functions" 안에 인쇄하려고하면 빈 상태가됩니다.) 당신은이 같은이 기능 뭔가 내에서 할 수있는

:

handles.popup_test=hObject; %pass handles the popup menu object 
guidata(hObject, handles); 

그리고 오프닝 기능 XXXX_OpeningFcn(hObject, eventdata, handles, varargin)에 당신은 추가 할 수 있습니다

%...define TestList and other things you need 
set(handles.popup_test,'string',TestList); 
+0

감사합니다, 나는 지금에 의해 오류를 제거있어 많은 가장 작은. 것은 지금 나는 그것을 실행할 때 팝업 메뉴가 비어있다이다. 나는 그것이 TestList를 채우기위한 반복이 어디에 배치되어야하는지에 대한 느낌을 가지고 있는데, 나는 그것을'XXXX_OpeningFcn (hObject, eventdata, handles, varargin)'으로 옮겼습니까? –

+0

'set (handles.popup_test, 'string', [ 'a'; 'b'; 'c']);'시도해보십시오. 그러면 작동 했으므로 팝업 메뉴에서'abc'를 볼 수 있다면, 그러면 파일에있는 문제를 알 수 있습니다. – Maroun

+0

신경 쓰지 마세요. 나는 그것을 해결했다, 많이 고마워! :) –