2012-08-01 2 views
0

내 matlab gui에 listBitDepth라는 팝업 메뉴가 있습니다.matlab popupmenu callback never called

나는 값이 작동

bitDepthStr{1}= ' auto detect '; mapBitDepthToListIndex(1) = 0; 
bitDepthStr{2}= ' 8 bit (256)'; mapBitDepthToListIndex(2) = 8; 
bitDepthStr{3}= '10 bit (1024)'; mapBitDepthToListIndex(3) = 10; 
bitDepthStr{4}= '12 bit (4096)'; mapBitDepthToListIndex(4) = 12; 
bitDepthStr{5}= '14 bit (16384)'; mapBitDepthToListIndex(5) = 14; 
bitDepthStr{6}= '16 bit (65536)'; mapBitDepthToListIndex(6) = 16; 
set(handles.listBitDepth,'String',bitDepthStr); 
set(handles.listBitDepth,'value',1); 

를 사용하여 채 웁니다.

는 그리고 콜백 함수 나 팝업 메뉴의 목록에서 항목을 선택하는 경우에는 호출되지 않습니다

function listBitDepth_Callback(hObject, eventdata, handles) 
val = get(hObject,'Value') 
... 

에게 있습니다.

왜?

+0

당신이 가이드는 당신의 GUI를 만드는 데 사용 했을? 속성 검사기를 통해 지정된 (또는 코드를 통해 추가 된) 콜백이 있습니까? – grantnz

+0

모든 콜백 기능에 대한 가이드를 사용합니다. 존재하지 않으면 속성 관리자와 함께 추가합니다. –

답변

1

코드 줄 집합 (handles.listBitDepth, 'value', 1) 후에 중단 점까지 실행 한 후 다음을 실행하면 어떻게됩니까? ?

get(handles.listBitDepth,'callback') 

당신은 볼 수 :

ANS =

@(hObject,eventdata)popuptest('listBitDepth_Callback',hObject,eventdata,guidata(hObject)) 
+0

실제로 그것이 내가 본 것입니다. –

+0

이제 작동합니다. 나는 함수에서 코드를 변경했고 어떻게 든 콜백이 이제는 왜 불려지는지 이해하지 못한다. –