Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-01-12, 08:20   #1
一个人的旅行
初级会员
 
注册日期: 2008-10-01
年龄: 41
帖子: 9
声望力: 0
一个人的旅行 正向着好的方向发展
默认 handles还是全局变量

最近在写一个GUI界面,里面需要用到很多类似全局变量的东西

究竟什么时候用handles什么时候用global呢?我在使用的时候感觉功能差不多

有没有人能指点一下
一个人的旅行 当前离线   回复时引用此帖
旧 2009-01-12, 14:47   #2
阿基米熊
初级会员
 
注册日期: 2008-03-07
年龄: 37
帖子: 16
声望力: 18
阿基米熊 正向着好的方向发展
默认 回复: handles还是全局变量

最好用handles,据说全局变量用多了会使程序不稳定。
handles可以很好的完成全局变量的功能
阿基米熊 当前离线   回复时引用此帖
旧 2009-01-14, 04:46   #3
一个人的旅行
初级会员
 
注册日期: 2008-10-01
年龄: 41
帖子: 9
声望力: 0
一个人的旅行 正向着好的方向发展
默认 回复: handles还是全局变量

谢谢LSD,有人知道具体是是为什么吗

如果global不稳定,而handles又可以代替它,那global还要来做什么?
一个人的旅行 当前离线   回复时引用此帖
旧 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 当前离线   回复时引用此帖
旧 2009-03-20, 22:05   #5
xsprinkle
普通会员
 
注册日期: 2008-11-06
年龄: 42
帖子: 39
声望力: 17
xsprinkle 正向着好的方向发展
默认 回复: handles还是全局变量

好复杂~~~~听不明白:tongue:
xsprinkle 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
[求助]需用simulink吗 lan2265210 MATLAB论坛 2 2009-03-16 11:23
[求助]哪位帮忙画个简单的图,先谢了。 alphas MATLAB论坛 0 2008-12-14 11:40
大家好,有谁知道怎样取消收费? 小树桩 MATLAB论坛 0 2008-12-07 20:59
[求助]axis显示图像问题 bigorangefdc MATLAB论坛 2 2008-11-15 10:18
Studying the World's Most Complex Dynamic Systems TechnicalArticles MATLAB技术文章 0 2008-08-29 00:40


所有时间均为北京时间。现在的时间是 09:11


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.