Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2008-10-01
年龄: 41
帖子: 9
声望力: 0 ![]() |
![]()
最近在写一个GUI界面,里面需要用到很多类似全局变量的东西
究竟什么时候用handles什么时候用global呢?我在使用的时候感觉功能差不多 有没有人能指点一下 ![]() |
![]() |
![]() |
![]() |
#2 |
初级会员
注册日期: 2008-03-07
年龄: 37
帖子: 16
声望力: 18 ![]() |
![]()
最好用handles,据说全局变量用多了会使程序不稳定。
handles可以很好的完成全局变量的功能 |
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2008-10-01
年龄: 41
帖子: 9
声望力: 0 ![]() |
![]()
谢谢LSD,有人知道具体是是为什么吗
如果global不稳定,而handles又可以代替它,那global还要来做什么? |
![]() |
![]() |
![]() |
#4 |
初级会员
注册日期: 2009-01-19
年龄: 45
帖子: 3
声望力: 0 ![]() |
![]()
用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为什么就可以找到了呢?) |
![]() |
![]() |
![]() |
#5 |
普通会员
注册日期: 2008-11-06
年龄: 42
帖子: 39
声望力: 17 ![]() |
![]()
好复杂~~~~听不明白:tongue:
|
![]() |
![]() |
![]() |
|
|
![]() |
||||
主题 | 主题作者 | 版面 | 回复 | 最后发表 |
[求助]需用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 |