我的matlab gui中有一个名为listBitDepth的弹出菜单。
我使用
填充值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 :(得分:1)
如果在设置代码行后运行到断点后运行以下命令会得到什么(handles.listBitDepth,'value',1); ?
get(handles.listBitDepth,'callback')
您应该看到:
ans =
@(hObject,eventdata)popuptest('listBitDepth_Callback',hObject,eventdata,guidata(hObject))