123231321 发表于 2006-12-9 17:39

GUI编程

我想做一个计算器,数字键及其功能键都用push button,然后,用Edit Text做一个显示屏,使数字键及功能键能在这个显示屏中显示,可是我在.m文件中不知道用哪个函数能实现上述功能?
而且根据.fig各按钮的属性设置,在.m文件中只有push button的callback,我之前看过MATLAB6.0书中关于计算器GUI设计,里面是通过函数OnKeydown实现数字键或功能键的显示的,那么我现在在MATLAB7.0中该如何解决上述问题?
谢谢指教!

笑石头 发表于 2006-12-9 18:49

看到图中绿色部分
在这后面建立一个函数
建立的函数类似于OnKeydown函数
实现数字键或功能键的显示的

123231321 发表于 2006-12-9 21:14

求助计算器GUI设计

是这样的,我设了3个数字键,分别为1、2、3,其tag属性分别设为pushbutton1,pushbutton2,pushbutton3,其string分别设为1、2、3,又设了个Edit Text作为显示屏,tag属性为screen,这样设好后,生成的.m文件会自带每个控件的callback函数。
我试了下你给我提的方法,在设三个数字键的属性时分别设ButtonDownFcn为test('pushbutton1_ButtonDownFcn',gcbo,[],guidata(gcbo))、test('pushbutton2_ButtonDownFcn',gcbo,[],guidata(gcbo))、test('pushbutton3_ButtonDownFcn',gcbo,[],guidata(gcbo)),这样的话,在后面生成的.m文件中就会带有这个函数,不知道我这样设置是否正确?
但是没运行出来,请问谁有计算器的.m文件代码?最好是在MATLAB7。0环境下的。
上传让我学习一下。
谢谢。

jimin 发表于 2006-12-9 21:28

h1=uicontrol(gcf,'style','radio',...
    'string','加',...
    'value',0,...
    'position',,...
    'callback',[...
      'k=1;,',...
      'set(h1,''value'',1),',...
      'set(h2,''value'',0),',...
      'set(h3,''value'',0)']);
h2=uicontrol(gcf,'style','radio',...
    'string','减',...
    'position',,...
    'callback',[...
      'k=2;,',...
      'set(h2,''value'',1),',...
      'set(h1,''value'',0),',...
      'set(h3,''value'',0)']);
h3=uicontrol(gcf,'style','radio',...
    'string','乘',...
    'position',,...
    'callback',[...
      'k=3;,',...
      'set(h3,''value'',1),',...
      'set(h2,''value'',0),',...
      'set(h1,''value'',0)']);
e1=uicontrol(gcf,'style','edit',...
    'position',);
e2=uicontrol(gcf,'style','edit',...
    'position',);
e3=uicontrol(gcf,'style','edit',...
    'position',);
b1=uicontrol(gcf,'style','pushbutton',...
    'string','运算',...
    'position',,...
    'callback',[...
      'x=str2num(get(e1,''string''));,',...
      'y=str2num(get(e2,''string''));,',...
      'switch k,',...
      'case 1,',...
      'z=x+y;,',...
      'case 2,',...
      'z=x-y;,',...
      'case 3,',...
      'z=x*y;,',...
      'end,',...
      'set(e3,''string'',num2str(z))']);
b2=uicontrol(gcf,'style','pushbutton',...
    'string','退出',...
    'position',,...
    'callback','close');

[ 本帖最后由 jimin 于 2006-12-9 21:32 编辑 ]

123231321 发表于 2006-12-9 21:44

谢谢各位的指点啊!
我想用控件的方法试着做一下,可能还是会有好多问题,还望大家以后多多指点!
如果大家还有这方面的程序,希望再上传下,这样多多交流,有利于学习。
页: [1]
查看完整版本: GUI编程