声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2091|回复: 11

[GUI界面] 帮我看看set这么用有什么问题?

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

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

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

x
我现在有一个gui的界面,上面有很多edit的编辑空白地方,我想在上面输出我在程序中计算好的一个数值 怎么做啊?
我的方法是在该控件的回调函数中用set(handles.name, data);对吗? 怎马没在gui上看到data的数值阿!!
回复
分享到:

使用道具 举报

发表于 2006-10-12 09:35 | 显示全部楼层
给你个例子参考一下
h=figure('toolbar','none',...
    'position',[200 150 450 250],...
    'name','实例');
h1=uicontrol(gcf,'style','edit',...
    'position',[80 200 100 20],...
    'HorizontalAlignment','right',...
    'callback',['m=get(h1,''string'');,',...
        'a=str2num(m);']);
h2=uicontrol(gcf,'style','edit',...
    'HorizontalAlignment','right',...
    'position',[80 150 100 20],...
    'callback',['n=get(h2,''string'');,',...
        'b=str2num(n);']);
h3=uicontrol(gcf,'style','text',...
    'string','被除数',...
    'position',[80 230 100 20]);
h4=uicontrol(gcf,'style','edit',...
    'position',[80 50 100 20]);
h5=uicontrol(gcf,'style','pushbutton',...
    'position',[80 100 100 20],...
    'string','=',...
    'callback',[...
        'if b==0,',...
        'h7=errordlg(''除数不能为0!'',''error'',''on'');,',...
        'else,',...
        'k=a/b;,',...
        'c=num2str(k);,',...
        'set(h4,''string'',c),',...
        'end']);
h8=uicontrol(gcf,'style','text',...
    'string','除数',...
    'position',[80 175 100 20]);
h9=uicontrol(gcf,'style','text',...
    'string','商',...
    'position',[80 75 100 20]);
发表于 2006-10-12 10:29 | 显示全部楼层
原帖由 jimin 于 2006-10-12 09:35 发表
给你个例子参考一下
h=figure('toolbar','none',...
    'position',,...
    'name','实例');
h1=uicontrol(gcf,'style','edit',...
    'position',,...
    'HorizontalAlignment','right',...
    'ca ...


这个是没错,不过人家是gui,把最核心的东西贴出来就ok拉
发表于 2006-10-12 10:55 | 显示全部楼层
最核心的是什么,这么多我只想在回调函数中有一个可以在可编辑文本中显示数值的语句。
例如:显示32
请给出相应的语句。
谢谢!!
发表于 2006-10-12 11:04 | 显示全部楼层
原帖由 yincar 于 2006-10-12 10:55 发表
最核心的是什么,这么多我只想在回调函数中有一个可以在可编辑文本中显示数值的语句。
例如:显示32
请给出相应的语句。
谢谢!!



假设你的editbox的Tag属性是edtA,则用set(handles.edtA,''string'',num2str(32))就ok了,建议这种问题搜索一下论坛,我曾经写过一篇GUI文章,也回答过类似的问题
发表于 2006-10-12 11:05 | 显示全部楼层
原帖由 eight 于 2006-10-12 10:29 发表


这个是没错,不过人家是gui,把最核心的东西贴出来就ok拉

所言极是,喜欢你这种简单明了一针见血的风格
 楼主| 发表于 2006-10-12 13:35 | 显示全部楼层
这种方法我用过,可是还是不能在编辑框中得到数值。不知道是那里的问题。
我是在function varargout =s_edit_Callback(hObject, eventdata, handles)回调函数中写的该语句。有问题吗?
发表于 2006-10-12 14:21 | 显示全部楼层
原帖由 t_Z_qiong 于 2006-10-12 13:35 发表
这种方法我用过,可是还是不能在编辑框中得到数值。不知道是那里的问题。
我是在function varargout =s_edit_Callback(hObject, eventdata, handles)回调函数中写的该语句。有问题吗?



唉,看来送佛要送到西,就在你上面说的的函数中写:

读数据  x = get(handles.s_edit,'String');
写数据  set(handles.s_edit, 'String', x);
 楼主| 发表于 2006-10-16 11:24 | 显示全部楼层
八:上次是我罗嗦了一些。可是你说的方法,我用过就是出不来显示的值。我自己都要晕了。我都不知道还有什么问题。就是在编辑框上没有数值显示。晕晕晕!
发表于 2006-10-16 11:29 | 显示全部楼层
原帖由 t_Z_qiong 于 2006-10-16 11:24 发表
八:上次是我罗嗦了一些。可是你说的方法,我用过就是出不来显示的值。我自己都要晕了。我都不知道还有什么问题。就是在编辑框上没有数值显示。晕晕晕!



首先在GUI设计页面中,试试你的编辑框有没有问题,具体如下:File->New->GUI->Open Existing GUI,打开你的fig文件,然后双击你的编辑框,在属性页中设置 String 为1234,然后运行一下,看看有没有1234这个数值显示。如果有,把你的代码贴出来,如果没有,我就没有办法了
发表于 2006-10-18 10:01 | 显示全部楼层
eight:按照你的方法我试了,可以出现1234;可是我把代码贴到显示1234的编辑框中,显示出来的是代码阿,还是没有数值。
我在function varargout =s_edit_Callback(hObject, eventdata, handles)回调函数中泳到了该gui中别的回调函数中计算的数值,是不是应为这个原因,不能 用set(handles.s_edit, 'String', x);把数值显示出来,因该怎么解决阿?
谢谢!非常谢谢!!
发表于 2006-10-18 10:10 | 显示全部楼层
原帖由 yincar 于 2006-10-18 10:01 发表
eight:按照你的方法我试了,可以出现1234;可是我把代码贴到显示1234的编辑框中,显示出来的是代码阿,还是没有数值。
我在function varargout =s_edit_Callback(hObject, eventdata, handles)回调函数中泳到了该 ...


function varargout =s_edit_Callback(hObject, eventdata, handles) 这个函数肯定不是matlab通过GUI自动生成的,你一定是想返回某些东西,把其返回值修改了,如果是自动生成的代码,应该是:function s_edit_Callback(hObject, eventdata, handles),我猜问题就出在这里
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-5 15:57 , Processed in 0.079682 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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