Обратный вызов всплывающего меню Matlab никогда не вызывался

У меня есть всплывающее меню под названием listBitDepth в моем графическом интерфейсе Matlab.

Я заполняю его значениями, используя

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')
...

который, однако, не вызывается, если я выбираю элемент из списка во всплывающем меню.

Зачем?


person Matthias Pospiech    schedule 01.08.2012    source источник
comment
Вы использовали Guide для создания своего графического интерфейса? Есть ли обратный вызов, указанный через инспектор свойств (или добавленный через код)?   -  person grantnz    schedule 01.08.2012
comment
Я использую руководство для всех функций обратного вызова. Если они не существуют, я добавляю их с помощью инспектора свойств.   -  person Matthias Pospiech    schedule 02.08.2012


Ответы (1)


Что вы получите, если запустите следующее после запуска до точки останова после набора строки кода (handles.listBitDepth, 'value', 1); ?

get(handles.listBitDepth,'callback')

Тебе следует увидеть:

ответ =

@(hObject,eventdata)popuptest('listBitDepth_Callback',hObject,eventdata,guidata(hObject))
person grantnz    schedule 02.08.2012
comment
Теперь это работает. Я изменил код в функциях, и каким-то образом он теперь вызывается, хотя я не понимаю, почему. - person Matthias Pospiech; 07.08.2012