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

来源:互联网 发布:苹果4g网络怎么设置 编辑:程序博客网 时间:2024/05/17 23:26

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