xtmm00 发表于 2006-6-19 11:10

文件导航已实现请看我的回帖,但是现在小女子又遇到新问题了

我设计的图上有三个'radio'类型的控件<BR><FONT color=#ff3300>function Step(sheme)</FONT><BR>.......<BR><FONT color=#f73809>case1<BR></FONT>      radio_AngleCurve=uicontrol(h_fig,'style','radio',...<BR>                                  'position',,...<BR>                                  'Units','normalized', ...<BR>                                  'string','Angle Curve',...<BR>                                  'BackgroundColor',,...<BR>                                  'callback','Step(''test1'')');<BR><BR>      radio_SpeedCurve=uicontrol(h_fig,'style','radio',...<BR>                                  'position',,...<BR>                                  'Units','normalized', ...<BR>                                  'string','Speed Curve',...<BR>                                  'BackgroundColor',,...<BR>                                  'callback','Step(''test2'')');<BR><BR>      radio_VoltageCurve=uicontrol(h_fig,'style','radio',...<BR>                                  'position',,...<BR>                                  'string','Voltage Curve',...<BR>                                  'Units','normalized', ...<BR>                                  'BackgroundColor',,...<BR>                                  'callback','Step(''test3'')');<BR>   <FONT color=#f73809>case'test1'</FONT><BR>         x=1:1:10;<BR>         y=x;<BR>         plot(x,y)<BR>    <FONT color=#f73809>case'test2'</FONT><BR>         x=0:pi/50:2*pi<BR>         y=sin(x);<BR>         plot(x,y);<BR>   <FONT color=#f76809>case'test3'<BR></FONT>         x=0:pi/50:2*pi<BR>         y=cos(x);<BR>         plot(x,y);<BR> <FONT color=#f70909>end<BR></FONT>一般书上都讲了两个的情况,如何点击一个''无线电''使小圆圈点黑,使另外一个''无线电''按钮圆心为空<BR><BR>但是我现在有三个这样的东东,不知道怎么才能点击一个的时候调用需要的图行,不被点击而点击别的''无线电''按钮时小圆圈自动转为空心.<BR><BR><FONT color=#113dee>拜托各位了,急用呢,在线等各位大虾!</FONT>

bainhome 发表于 2006-6-19 12:11

都是一个道理<BR>方法1:<BR>假设hr1-hr3为三个radio句柄:<BR>'set(hr1,''value'',get(hr1,''max'')),',...%选中小圆圈点黑<BR>'set(hr2,''value'',get(hr2,''min'')),',...%将互斥选项2点白<BR>'set(hr3,''value'',get(hr3,''min'')),',...%将互斥选项3点白<BR>方法2:<BR>uibuttongroup(v7以上)<BR>h = uibuttongroup('Position',);<BR>u0 = uicontrol('Style','Radio','String','Option 1',...<BR>    'pos',,'parent',h);<BR>u1 = uicontrol('Style','Radio','String','Option 2',...<BR>    'pos',,'parent',h);<BR>u2 = uicontrol('Style','Radio','String','Option 3',...<BR>    'pos',,'parent',h);<BR>具体callback如何写看看帮助里的实例即可,无需多说。<BR>

xuebx 发表于 2006-6-19 13:56

二楼说的精到,一楼尽可尝试

xtmm00 发表于 2006-6-19 14:25

回复:(bainhome)都是一个道理方法1:假设hr1-hr3为...

<P><FONT color=#ff0000>按照二楼的意见,修改为,但是运行结果不对的哦!</FONT>      <BR>radio_AngleCurve=uicontrol(h_fig,'style','radio',...<BR>                                  'Units','normalized', ...   <BR>                                  'position',,...<BR>                                  'string','Angle Curve',...<BR>                                  'BackgroundColor',,...<BR>                                  'callback',['Step_3(''test1'')',...<BR>                                  'set(radio_AngleCurve,''value'',1)',...<BR>                                  'set(radio_SpeedCurve,''value'',0)',...<BR>                                  'set(radio_VoltageCurve,''value'',0)']);<BR><BR><FONT color=#f73809>结果还是不行的啊,还返回错误为:</FONT><BR>??? Error: Missing operator, comma, or semicolon.</P>
<P>??? Error while evaluating uicontrol Callback.<BR><BR><FONT color=#0909f7>大虾们在帮我看看的啦</FONT></P>

bainhome 发表于 2006-6-19 14:39

??? Error: Missing operator, comma, or semicolon.<BR>什么缺个逗号分号的语法错误和radio有什么关系?callback里语句连分隔符都不用,当然提示错误!

xtmm00 发表于 2006-6-19 15:10

回复:(bainhome)??? Error: Missing operator, com...

<P>后来我改过来了,还是不正确的哦<BR>而且错误更奇怪了:<BR>??? Undefined function or variable 'radio_AngleCurve'.</P>
<P>??? Error while evaluating uicontrol Callback.</P>

xtmm00 发表于 2006-6-19 16:47

回复:(bainhome)??? Error: Missing operator, com...

请高手指点................

bainhome 发表于 2006-6-19 17:27

<P>显然是参数和句柄在不同子程序之间传递的问题,一句两句根本说不清,自己去找找GUI句柄如何在子程序之间传递调用的书籍和帮助看看<BR>=================================================<BR>关于handles: <BR>实际上这个handles是MATLAB中GUI编程中最常用的一个句柄管理变量。 <BR>handles的生成:handles = guihandles( figurehandle );将figure中所有对象中“Tag”属性有值的句柄的handle采集在一起。handles是结构名,每个“Tag”域名里保持此对象的句柄。 <BR>handles的保存:guidata( figurehandle, handles );handles将保存在figure对象的“ApplicationData”的一个域名里。 <BR>handles的使用:handles = guidata( h );其中为figure中任意一个对象的句柄。 <BR>handles.SpeechSourceGui可能是一个figure的句柄,“userdata”是一个对象的属性,可以在其中存取任何数据。但是我不怎么用它,一则它只能存一个变量;二则它无法存入变量的名字,很难区分。 <BR>=================================================<BR>cwit原来写过一个函数结构与参数传递的帖子,上述为其中相关的一部分,仔细琢磨一下guidata和guihandles两个命令的用法吧。否则,你以为“奇怪”其实却再理所当然不过的错误你会一犯再犯。因为这个问题超过了你问的这个帖子主题当初的范围,不再多说。good luck!</P>
页: [1]
查看完整版本: 文件导航已实现请看我的回帖,但是现在小女子又遇到新问题了