声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1468|回复: 4

[GUI界面] GUI编程

[复制链接]
发表于 2006-12-9 17:39 | 显示全部楼层 |阅读模式

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

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

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

使用道具 举报

发表于 2006-12-9 18:49 | 显示全部楼层
看到图中绿色部分
在这后面建立一个函数
建立的函数类似于OnKeydown函数
实现数字键或功能键的显示的
未命名.JPG
 楼主| 发表于 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环境下的。
上传让我学习一下。
谢谢。
发表于 2006-12-9 21:28 | 显示全部楼层
h1=uicontrol(gcf,'style','radio',...
    'string','加',...
    'value',0,...
    'position',[20 150 40 20],...
    'callback',[...
        'k=1;,',...
        'set(h1,''value'',1),',...
        'set(h2,''value'',0),',...
        'set(h3,''value'',0)']);
h2=uicontrol(gcf,'style','radio',...
    'string','减',...
    'position',[20 110 40 20],...
    'callback',[...
        'k=2;,',...
        'set(h2,''value'',1),',...
        'set(h1,''value'',0),',...
        'set(h3,''value'',0)']);
h3=uicontrol(gcf,'style','radio',...
    'string','乘',...
    'position',[20 70 40 20],...
    'callback',[...
        'k=3;,',...
        'set(h3,''value'',1),',...
        'set(h2,''value'',0),',...
        'set(h1,''value'',0)']);
e1=uicontrol(gcf,'style','edit',...
    'position',[80 150 100 20]);
e2=uicontrol(gcf,'style','edit',...
    'position',[80 110 100 20]);
e3=uicontrol(gcf,'style','edit',...
    'position',[80 70 100 20]);
b1=uicontrol(gcf,'style','pushbutton',...
    'string','运算',...
    'position',[200 150 80 30],...
    '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',[200 100 80 30],...
    'callback','close');

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

评分

1

查看全部评分

 楼主| 发表于 2006-12-9 21:44 | 显示全部楼层
谢谢各位的指点啊!
我想用控件的方法试着做一下,可能还是会有好多问题,还望大家以后多多指点!
如果大家还有这方面的程序,希望再上传下,这样多多交流,有利于学习。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-12-13 08:58 , Processed in 0.063067 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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