注册 登录
编程论坛 Matlab

[求助]GUI界面中的Button Group 中实现的功能怎么整合到别的callback里去呢?

snowrainbow 发布于 2007-06-08 15:19, 2193 次点击
请教各位:我的界面中有一组Button Group 实现的分别是波束的直角坐标、极坐标、三维显示这三种显示方式。我之前已通过一个push button键实现了画波束图,不过导师要求在push button的call back里必须用switch 语句实现这三种显示方式的选择,我之前只会写将popup menu实现的功能调到push button里的switch 语句,直接用它的val值就可以了,我考虑Button Group 的话用它们各自的tag,但是这个tag是由Button Group 中的seletion fcn 产生的啊,我要怎么做呢?
3 回复
#2
zhangenter2007-06-09 13:53
SelectTag = get (handles.MyButtonGroup, 'SelectedObject') ;

switch SelectTag
case handles.MyRadio1
……
case handles.MyRadio2
……
end
#3
snowrainbow2007-06-09 20:01
谢谢你!我刚试了试,有这样的错误:??? SWITCH expression must be a scalar or string constant.
switch语句的返回值必须是数值,是这个意思吗?那要怎么处理啊?我之前的疑惑也就是在这里,要真是需要val怎么办呢?
#4
zhangenter2007-06-10 09:00

只能是单个的数或字符串,向量、结构体、元胞等不可以

没道理的,单个的句柄是可以switch的,是不是有同名的tag,变成向量了。

另外用if,elseif也一样
SelectTag = get (handles.MyButtonGroup, 'SelectedObject') ;

if isequal( SelectTag, handles.MyRadio1 )
……
elseif isequal( SelectTag, handles.MyRadio2 )
……
elseif isequal( SelectTag, handles.MyRadio3 )
……
else
……
end

1