您的位置:首页 > 编程语言 > MATLAB

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

2017-01-17 15:03 666 查看


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)实现:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: