MATLAB中文论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 95|回复: 1|关注: 0

[已解决] gui中,关于findobj实际应用的一些问题

[复制链接]

新手

7 麦片

财富积分


050


1

主题

1

帖子

0

最佳答案
目标效果为设置两个按钮,一个为“点击”,一个为“a”,点击“点击”按钮,让“a”按钮不可见,再点击一次,使“a”按钮可见。
附上其他网站所取得的代码

  1. function pushbutton1_Callback(hObject, eventdata, handles)
  2. h1=findobj(handles.pushbutton2,'visible','off');
  3. if h1==findobj(handles.pushbutton2,'visible','off')
  4.     set(handles.pushbutton2,'visible','on')
  5. else
  6.     set(handles.pushbutton2,'visible','off')
  7. end
复制代码

经确认可用但是对fingobj有些使用的问题,但是原回答年代久远无法与回答者取得联系,因此提问。
1,已经规定h1=findobj(handles.pushbutton2,'visible','off'),即h1为fingobj所取得,为什么判断if h1==findobj(handles.pushbutton2,'visible','off')时会产生else情况?
2,我理解h1=findobj(handles.pushbutton2,'visible','off')目的是取得pushbutton2可见性属性,为什么需要预设off?
新手学生,望不吝赐教

MATLAB 基础讨论
版块优秀回答者

入门

205 麦片

财富积分


50500


1

主题

190

帖子

45

最佳答案
  • 关注者: 4
发表于 5 天前 | 显示全部楼层 |此回复为最佳答案
如果pushbutton2可见,那么findobj(handles.pushbutton2,'visible','off')会返回空矩阵,判断语句进入else分支,将pushbutton2设为不可见。
如果pushbutton2不可见,那么findobj(handles.pushbutton2,'visible','off')会返回pushbutton2的handle,判断语句进入if分支,将pushbutton2设为可见。
稍微改一下,更容易理解~

  1. function pushbutton1_Callback(hObject, eventdata, handles)
  2. h1=findobj(handles.pushbutton2,'visible','off');
  3. if h1
  4.     set(handles.pushbutton2,'visible','on')
  5. else
  6.     set(handles.pushbutton2,'visible','off')
  7. end
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

快速回复 返回顶部 返回列表