GUI中使用Popupmenu遇到的问题及其解决办法
1. 错误案例:在GUI内拖出一个popupmenu。
(1)OpeningFcn函数里的代码:set(handles.popupmenu1,'string',{'游戏难度';'简单';'中等';'困难'});(2)Popupmenu的回调函数如下:str_value = get(handles.popupmenu1, 'string');switch str_value case '简单' disp('You'); case '中等' disp('are'); case '困难' disp('unique.');end 这样做的结果是,当选择任意选项后,对应的代码不会执行,即, 进入不了case。 这是因为,str_value = get(handles.popupmenu1, 'string');得到的是一个4*1的元包数组,所以目前所有case后的条件都不满足,因此,并未实现预期的效果。2. 解决问题:在回调函数中获取菜单选项时,获取其位置,而不是取其字符串。即,将str_value = get(handles.popupmenu1, 'string');改为:value = get(handles.popupmenu1, 'value');对应代码 如下:(1)OpeningFcn函数里的代码:set(handles.popupmenu1,'string',{'游戏难度';'简单';'中等';'困难'});(2)Popupmenu的回调函数:value = get(handles.popupmenu1, 'value');switch value case 2 disp('You'); case 3 disp('are'); case 4 disp('unique.');end (3)实现: