【matlab】GUI 中使用Popupmenu遇到的问题及其解决办法

时间:2023-01-15 15:31:34

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)实现:【matlab】GUI 中使用Popupmenu遇到的问题及其解决办法