Matlab GUI handles 参数传递的问题

JordenChen 2012-04-18 08:56:06
最近新学Matlab GUI,发现GUI参数传递中的一个问题
我在界面上放置了一个text1控件和一个pushbutton控件

使用handles可以在各控件中传递参数,但是控件调用的子函数就没法对handles中的值进行修改
比方说:
function untitled_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
% 自己定义的一个参数
handles.StrInit='0';
% Update handles structure
guidata(hObject, handles);

function pushbutton_callback(hObject,handles)
handles.StrInit=[handles.StrInit,'_pushbutton'];
Fcn1(hObject,handles);
set(handles.text1,'string',handles.StrInit);
guidata(hObject,handles);


function Fcn1(hObject,handles)
handles.StrInit=[handles.StrInit,'_Fcn1'];
guidata(hObject,handles);
Fcn2(hObject);

function Fcn2(hObject,handles)
handles.StrInit=[handles.StrInit,'_Fcn2'];
guidata(hObject,handles);

结果显示的是“0_pushbutton”也就是说在Fcn1和Fcn2中对handles的修改没有生效。
网上说用handles=guidata(gcbo),然后试过在子函数中第一句加上该句,仍然没有效果。

不知道哪位大神能帮忙解决这个问题?
...全文
1658 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
domonate 2012-04-20
  • 打赏
  • 举报
回复
多看看help文档应该就可以了!
JordenChen 2012-04-19
  • 打赏
  • 举报
回复
嗯,我知道,但是就是因为刚刚学GUI,对handles变量不是很理解,它的作用域、传递机制还有guidata的作用等等这些基础的东西不懂,所以想搞懂点。
libralibra 2012-04-18
  • 打赏
  • 举报
回复
一般matlab的gui界面程序,直接global设置成全局变量算了
每个子函数都可以使用,修改也方便

3,424

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 其他开发语言
社区管理员
  • 其他开发语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧