查看单个帖子
旧 2009-01-27, 21:02   #4
marijuana
初级会员
 
注册日期: 2009-01-19
年龄: 45
帖子: 3
声望力: 0
marijuana 正向着好的方向发展
默认 回复: handles还是全局变量

用global还是用handles,具体情况具体分析吧。我感觉handles是不能代替global的。
我用的是6.5版本的matlab,在GUI的使用中我发现
在OpeningFcn 里或CreateFcn里的handles跟callback里的似乎是不一样的。(我也不清楚为什么,
但是调试程序时发现,create里的handles是空的结构,只有自己保存的变量名;而到了callback里再调出handles,是一个充满了控件句柄的结构,新保存的变量跟在后面)

在callback事件之后的临时变量偶尔用用handles.***
如果在create函数里产生了一个需要临时保存数值,我更喜欢用set某控件的UserData暂存,当然只能保存一个,如需保存多个,可以把struct赋给UserData试试(因为没这个需求,我还没实践过)。

我也很奇怪为什么?在Opening和Create里是可以通过findobj找到某个控件句柄的,并且可以随意使用set和get的。但用handles就不行了,create里的handles不包含所有控件的句柄(加入说handles为空结构体是因为控件此刻还没生成的话,那么findobj为什么就可以找到了呢?)
marijuana 当前离线   回复时引用此帖