注册 登录
编程论坛 Matlab

[求助]GUI界面中Popup Menu控件怎样设置

snowrainbow 发布于 2007-06-01 16:01, 8347 次点击

请教各位:我的popup menu下设置了三个功能,依次是均匀加权、自适应加权、切比雪夫加权,而另一组button group 中的两个按钮分别是均匀线列阵和任意型基阵,我要实现的是均匀线列阵这三种加权都在可选状态,而任意型基阵只能选择均匀加权和自适应加权,切比雪夫加权不可选,这个要怎么设置啊?
我之前有试过判断均匀线列阵被选中时执行一种操作(三种加权都可选),选择了任意型基阵时执行一种操作,使用的是if get(findobj('Tag','junyunxianliezhen'),'Value')==1
switch val
case 1...

不过连错误在哪都找不着了。请指点

7 回复
#2
leki2007-06-01 18:50
在popup menu里边你也想实现把一个字符串“变为灰色不可用状态”?这个似乎不行吧?
建议考虑一下动态设置字符串,就是选择“均匀线列阵”时,把“切比雪夫加权”加到popup menu的“string”里,而选另一个时,就不加。期待更好的建议
#3
snowrainbow2007-06-02 09:35
可是就我所知道的这点知识,popup menu里string是试先写好的,我就是先写好了均匀加权、切比雪夫加权、自适应加权的,这个在m文件里也可以改吗?是重set它的 string??我先试试,谢谢你!
#4
snowrainbow2007-06-02 11:32
我不会设置动态的string,以前没碰到过设置string,不知道设置它的格式是怎么样的呢?应该和value enable的格式不一样吧,我试了这种格式不行,请大家指点
#5
zhangenter2007-06-02 16:29
set( PopupMenuHandle, 'String', {'均匀加权','自适应加权','切比雪夫加权'} ) ;或者
set( PopupMenuHandle, 'String', '均匀加权|自适应加权|切比雪夫加权' ) ; 都可以
#6
snowrainbow2007-06-02 20:06
试了你的办法,为什么有这样的错误提示呢?
switch val
Warning: popupmenu control requires that Value be an integer within String range
Control will not be rendered until all of its parameter values are valid.
这是什么意思啊?请教各位
#7
zhangenter2007-06-02 22:33
因为你没有更新popupmenu的value,popupmenu的value值一定要是从1到选项个数,如果你设置的value不在这范围就会报那错,
我想大概是你在有三个选项的时候设置了value为3或选择了第三个,当把选项变为两个的时候没有去设置value才出那错的
#8
snowrainbow2007-06-03 14:55

谢谢你的启发,功能是免强实现了,不过还有待深入研究,好像也不是那个问题,谢谢你!

1