0

matlab gui に listBitDepth という popupmenu があります。

を使用して値を入力します

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

ただし、ポップアップメニューのリストから項目を選択しても呼び出されません。

なぜ?

4

1 に答える 1

1

コード行 set(handles.listBitDepth,'value',1); の後にブレークポイントまで実行した後に次を実行するとどうなりますか? ?

get(handles.listBitDepth,'callback')

君は見るべきだ:

ans =

@(hObject,eventdata)popuptest('listBitDepth_Callback',hObject,eventdata,guidata(hObject))
于 2012-08-02T18:42:55.297 に答える