声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1834|回复: 13

[GUI界面] M件编制的界面句柄应用问题

[复制链接]
发表于 2011-5-26 22:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
大家好,我用M文件编制了一个界面,按钮1的回叫函数用到了按钮2的句柄,请问如何将按钮2的句柄传到按钮1的回叫函数中,请高手赐教
回复
分享到:

使用道具 举报

发表于 2011-5-27 11:51 | 显示全部楼层
回复 1 # chihaibo1988 的帖子

感觉初学GUI,最好先做界面,再写各个控件的回调函数,这样简单些!
初学者可以参考下帮助doc guide
 楼主| 发表于 2011-5-27 23:26 | 显示全部楼层
回复 2 # wangyouyi 的帖子

我已经不算是初学了,GUI我会,我提的问题能回答我吗?
发表于 2011-5-28 09:26 | 显示全部楼层
回复 3 # chihaibo1988 的帖子

你最好把问题具体说清楚或者附上代码,这样别人容易理解,会的人也好帮你!
发表于 2011-5-28 12:35 | 显示全部楼层
本帖最后由 ChaChing 于 2011-5-28 17:43 编辑

1.同意LS的意见
2.LZ不算初学, 最好, 搜索下一定可找到解决方式, 而且学的多
3.Ref [原创]关于GUI的一点心得体会 http://forum.vibunion.com/thread-24684-1-1.html
  [原创]关于guidata和guihandles的一点心得 http://forum.vibunion.com/thread-36573-1-1.html

from http://forum.vibunion.com/home-space-uid-63979-do-blog-id-18250.html
 楼主| 发表于 2011-5-28 17:38 | 显示全部楼层
回复 4 # wangyouyi 的帖子

好的,举个例子吧
function chaoqigongkuang
figure;
r1 = uicontrol(gcf,'style','radio','String','10','BackgroundColor','y',...
    'unit','normalized','position',[0.62,0.72,0.1,0.05],'Callback',@r1call);
r2 = uicontrol(gcf,'style','radio','String','26','BackgroundColor','y',...
    'unit','normalized','position',[0.75,0.72,0.1,0.05],'Callback',@r2call);
function r1call(r1,eventdata,handles)
val1=get(r1,'Value');
if val1==1
    set(r2,'Value',0);
end
如何在函数r1call中让句柄r2有效,谢谢
 楼主| 发表于 2011-5-28 17:40 | 显示全部楼层
回复 5 # ChaChing 的帖子

这个我看过了,没找到想要的,谢谢
发表于 2011-5-28 17:46 | 显示全部楼层
回复 7 # chihaibo1988 的帖子

再详细看5F的连接(再增加一连接)!:@)
GUI个人不常用, 但我想方法可能有两三种!!
发表于 2011-5-28 22:19 | 显示全部楼层
回复 6 # chihaibo1988 的帖子

把r2定义为全局变量,应该可以解决你的问题啦!可能还有其它的方法解决这个问题!
我感觉你程序的问题在于函数之间句柄数据的传递出现问题,使得回调函数无法对r2进行操作和设置!

评分

1

查看全部评分

 楼主| 发表于 2011-5-29 17:20 | 显示全部楼层
回复 9 # wangyouyi 的帖子

你说的很对,回调函数是无法对r2进行操作;定义全局变量好像不行,我试过,如果你有好的解决方法,能不能给我详细写出来,谢谢
 楼主| 发表于 2011-5-29 17:23 | 显示全部楼层
回复 9 # wangyouyi 的帖子

其中我知道有一种方法,就是将r2的句柄值写出去,之后在回调函数中再读进来,不过这个太麻烦,所以想看看有没有什么更好的办法
 楼主| 发表于 2011-5-29 17:24 | 显示全部楼层
回复 8 # ChaChing 的帖子

方法能具体写出来吗,可以直接在我的程序上加上解决方法,谢谢
发表于 2011-5-29 17:46 | 显示全部楼层
回复 10 # chihaibo1988 的帖子

我采用全局变量可以实现对句柄r2的操作!代码如下:
function chaoqigongkuang
global r2
figure;
r1 = uicontrol(gcf,'style','radio','String','10','BackgroundColor','y',...
    'unit','normalized','position',[0.62,0.72,0.1,0.05],'Callback',@r1call);
r2 = uicontrol(gcf,'style','radio','String','26','BackgroundColor','y',...
    'unit','normalized','position',[0.75,0.72,0.1,0.05],'Callback',@r2call);
function r1call(r1,eventdata,handles)
global r2
val1=get(r1,'Value');
if val1==1
    set(r2,'Value',1);
end

评分

1

查看全部评分

 楼主| 发表于 2011-5-29 17:52 | 显示全部楼层
回复 13 # wangyouyi 的帖子

非常感谢,我把global写成globle了,犯了低级错误,终于解决了,再次感谢!

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-6-16 09:01 , Processed in 0.075550 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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