plsdd 发表于 2007-3-11 21:58

popup回调的参数问题!

窗口上面的popup控件定义为选择0,就返回k=0,选20,返回k=20,等等,同时在另外的一个窗口上面就会用到这个k值来计算。如果代码写成下面的,k值是可以传到另一个界面中进行计算:
global hpop k;
Fig=figure('unit','normalized','position',[.78 .15 .2 .7],...
    'name','绘制渐近线','menubar','none','numbertitle','off',...
    'resize','on','toolbar','none');
set(Fig,'defaultuicontrolunits','normalized') %设置用户缺省控件单位属性值
set(Fig,'defaultuicontrolfontsize',10);
set(Fig,'defaultuicontrolhorizontal','center');
set(Fig,'defaultuicontrolfontname','隶书');

uicontrol(Fig,'style','text',...
   'position',,...
   'string','直线斜率(k)','horizontalalignment','left','backgroundcolor',[.8 .8 .8]);
hpush=uicontrol(Fig,'style','pushbutton',...
   'position',,...
   'string','退出','callback','close,clear all');
hpop=uicontrol(Fig,'style','popup',...             %制作弹出菜单
   'position',,...
   'string','       0|    -20|   20|    -40|   40|    -60|   60');
hpop_callback=['global hpop,',...
    'asym_v=get(hpop,''value''),',...
    'switch asym_v,',...
    'case 1,',...
    'k=0,',...
    'case 2,',...
    'k=-20,',...
    'case 3,',...
    'k=20;',...
    'case 4,',...
    'k=-40,',...
    'case 5,',...
    'k=40,',...
    'case 6,',...
    'k=-60,',...
    'case 7,',...
    'k=60;',...
    'end'];
set(hpop,'callback',hpop_callback);

但如果前面加上了function
function asym_plot
global hpop k;
.......后面的代码跟前面的一样

点击popup按钮选择数值,k值也会和前面一样显示在workspace,但是无法传递到另外一个窗口里面,我在两个界面函数中都定义k为全局变量了啊。虽然第一种可以实现我的需求,但是出现一些其他的问题,就不赘述。查了一些资料,但未领会到答案,愚钝之极,特请教各位这是什么问题,k如何传递?

eight 发表于 2007-3-11 22:57

另外一个窗口

其函数是在同一个m文件中吗

plsdd 发表于 2007-3-12 09:21

回老八,不在同一个m文件当中。我也想做到同一个界面上(里面包含多个函数),但是也是出现上面的这个问题,k值可以返回到workspace,但就是传不到另一个函数中去,函数都在同一个m文件。谢谢指教

eight 发表于 2007-3-12 09:44

原帖由 plsdd 于 2007-3-12 09:21 发表
回老八,不在同一个m文件当中。我也想做到同一个界面上(里面包含多个函数),但是也是出现上面的这个问题,k值可以返回到workspace,但就是传不到另一个函数中去,函数都在同一个m文件。谢谢指教


建议看看以下精华贴:[原创]关于GUI的一点心得体会

[ 本帖最后由 eight 于 2007-3-12 09:45 编辑 ]
页: [1]
查看完整版本: popup回调的参数问题!