声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3810|回复: 15

[GUI界面] 毕业设计GUI用户界面制作 求教

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

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

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

x
已经做好了表面,里面的具体的问题就是在调用edit callback 时得不到需要的数据(h1 h2 k k1 k2 ),界面上nz1=h2 nz2=k nz3=h1 Espr2=e1 Espr3=e2
其余的数据都不需要修改,在另外调用的函数里都已经被设定,界面上只是表面文章,所以涉及的只是5个数据,而且 k+h2必须为75 。
在pushbotton2 callbak里的loaddata convert objsignal reflect 都是已经定义好的function 在这些function里还用到h1 h2 k k1 k2 所以我想是不是应该定义全局变量?但是我觉得 matlab 程序是按顺序执行下来的,M文件函数首先取得 edit 里的数据,然后在在pushbotton里callback 调用这些数据,没有错啊。报错时就是
??? Undefined function or variable 'h2'.

Error in ==> G:\ss\work\sam.m (pushbutton2_Callback)
On line 212 ==> if h2+k>75

Error in ==> D:\MATLAB\toolbox\matlab\uitools\gui_mainfcn.m
On line 66 ==> feval(varargin{:});

Error in ==> G:\ss\work\sam.m
On line 16 ==> gui_mainfcn(gui_State, varargin{:});

??? Error while evaluating uicontrol Callback.
是不是h2 根本就没在edit callback 里被获得?
高手帮忙!!谢谢!!
本人 QQ214957272 EMAIL :xiaobai8581@yahoo.com.cn
直接联系
回复
分享到:

使用道具 举报

 楼主| 发表于 2006-4-11 10:39 | 显示全部楼层
自己不顶就沉了~~大家帮我!!
发表于 2006-4-11 21:36 | 显示全部楼层
你这个程序太长了,没法看
缺少mat等文件,也没办法运行调试
发表于 2006-4-12 19:52 | 显示全部楼层
我已经给你回到信箱了
发表于 2006-4-14 18:57 | 显示全部楼层
不知你收到我发的邮件没有,再写下哦
你把edit2,edit3,edit4下面的h2,k,h1,三条语句剪切到pushbutton2_Callback下面,if前面,并在每条语句前家上一条:

fgm1=findobj(gcf,'Tag','edit2'); 加

h2=str2num(get(fgm1,'string')); 这是你写的

fgm2=findobj(gcf,'Tag','edit3'); 加

k=str2num(get(handles.edit3,'string')); 同上

fgm3=findobj(gcf,'Tag','edit4'); 加

h1=str2num(get(handles.edit4,'string')); 同上

你没有用到h1参数。是不是做不下去了,就停了。

方法都一样,你用到那各参数就照上面写,一定要写在同一目录下。

建议你不要用GUI,用MATLAB自己编界面。因为你用GUI给别人的M文件,是运行不了的,因为别人没有画GUI的fig图。所以你做完换台机子就运行不了了。除非你把figtu 一起存进work里。这样不太方便。如果自己编的,就只要运行M文件就可显示图了。还有问题欢迎讨论。
 楼主| 发表于 2006-4-14 21:41 | 显示全部楼层
我昨天收到你的邮件,马上就试了,还是有错误,具体的我已经发到你油箱,我用的是sampdoria8581@56.com

你查收下,再次感谢!!
发表于 2006-4-15 16:37 | 显示全部楼层
我还没有收到,你再发下,问题出在哪里。我试试都对的啊,你那tag后面的字符要对应,可以从fig里查是什么字符<
发表于 2006-4-15 16:43 | 显示全部楼层
k=str2num(get(handles.edit3,'string'));
h1=str2num(get(handles.edit4,'string'));

同上改
k=str2num(get(fgm2,'string'));
同上
h1=str2num(get(fgm3,'string'));

不好意思不仔细写错了
发表于 2006-4-16 10:31 | 显示全部楼层
建议你不要用GUI,用MATLAB自己编界面。因为你用GUI给别人的M文件,是运行不了的,因为别人没有画GUI的fig图。所以你做完换台机子就运行不了了。除非你把figtu 一起存进work里。这样不太方便。如果自己编的,就只要运行M文件就可显示图了。还有问题欢迎讨论。

问题真的是这样吗?
如果有了GUI编程,最后打包在一个没有装matlab的机子上运行有困难吗?
我也是用GUI做毕业设计,请高手指教这个问题
 楼主| 发表于 2006-4-16 16:08 | 显示全部楼层
你好,昨天有点事情,今天才看到你的邮件和论坛上的留言。我按你的改了,还是有问题,现在的问题是在子函数里了。 convert里。我很想不通,又要麻烦你了。
??? Undefined function or variable 'h1'.

Error in ==> G:\ss\work\convert.m
On line 9 ==> while ((abs(fyuan(xm,h1,k1,h2,k2,d)-0.00001)>0)&(abs(xb-xa)>0.0000001))

Error in ==> G:\ss\work\sam.m (pushbutton2_Callback)
On line 250 ==> t=convert(i,j,k); %time delay

Error in ==> D:\MATLAB\toolbox\matlab\uitools\gui_mainfcn.m
On line 66 ==> feval(varargin{:});

Error in ==> G:\ss\work\sam.m
On line 16 ==> gui_mainfcn(gui_State, varargin{:});

??? Error while evaluating uicontrol Callback.
 楼主| 发表于 2006-4-16 16:17 | 显示全部楼层
function f=fyuan(m,h1,k1,h2,k2,d)

f=h1*k1*m/sqrt(1-(k1*m)^2)+h2*k2*m/sqrt(1-(k2*m)^2)

这个就是在子函数convert里被调用的另外一个子函数,都涉及到界面输入的参数,是不是要在这里和convert里加上那段get?
 楼主| 发表于 2006-4-17 10:56 | 显示全部楼层
哈哈 ,真激动哦,调试了,没有错误了~~~很谢谢你这么耐心帮我~~论坛里你这样的人太少了!!没有你的那句话,就是打死我也做不出来啊!我找了很多书,都没有这些列子呢。对于初学者来说,有个点播下的人实在是太重要了!不过还有点小问题,关于图象显示的,我先再自己看看,实在不行再找你吧。呵呵
发表于 2006-4-17 15:50 | 显示全部楼层
呵呵,突然受感动了阿
 楼主| 发表于 2006-4-17 17:46 | 显示全部楼层
遇到好人了啊,感动是当然了啦
发表于 2006-4-19 11:03 | 显示全部楼层
大哥!!请问我要学MATLAB的GUI,有什么书籍么?实在不懂啊,我没有其他任何可视化工具使用的经历。谢谢了!谢谢了!!!我的邮箱street_ease@163.com

我的QQ71186528
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-29 09:54 , Processed in 0.075422 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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