sampdoria 发表于 2006-4-10 12:54

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

已经做好了表面,里面的具体的问题就是在调用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
直接联系

sampdoria 发表于 2006-4-11 10:39

自己不顶就沉了~~大家帮我!!

happy 发表于 2006-4-11 21:36

你这个程序太长了,没法看
缺少mat等文件,也没办法运行调试

zhangchuan 发表于 2006-4-12 19:52

我已经给你回到信箱了

zhangchuan 发表于 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文件就可显示图了。还有问题欢迎讨论。

sampdoria 发表于 2006-4-14 21:41

我昨天收到你的邮件,马上就试了,还是有错误,具体的我已经发到你油箱,我用的是sampdoria8581@56.com

你查收下,再次感谢!!

zhangchuan 发表于 2006-4-15 16:37

我还没有收到,你再发下,问题出在哪里。我试试都对的啊,你那tag后面的字符要对应,可以从fig里查是什么字符<

zhangchuan 发表于 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'));

不好意思不仔细写错了

xtmtd1186 发表于 2006-4-16 10:31

建议你不要用GUI,用MATLAB自己编界面。因为你用GUI给别人的M文件,是运行不了的,因为别人没有画GUI的fig图。所以你做完换台机子就运行不了了。除非你把figtu 一起存进work里。这样不太方便。如果自己编的,就只要运行M文件就可显示图了。还有问题欢迎讨论。

问题真的是这样吗?
如果有了GUI编程,最后打包在一个没有装matlab的机子上运行有困难吗?
我也是用GUI做毕业设计,请高手指教这个问题

sampdoria 发表于 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.

sampdoria 发表于 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?

sampdoria 发表于 2006-4-17 10:56

哈哈 ,真激动哦,调试了,没有错误了~~~很谢谢你这么耐心帮我~~论坛里你这样的人太少了!!没有你的那句话,就是打死我也做不出来啊!我找了很多书,都没有这些列子呢。对于初学者来说,有个点播下的人实在是太重要了!不过还有点小问题,关于图象显示的,我先再自己看看,实在不行再找你吧。呵呵

adabb922 发表于 2006-4-17 15:50

呵呵,突然受感动了阿

sampdoria 发表于 2006-4-17 17:46

遇到好人了啊,感动是当然了啦

street13 发表于 2006-4-19 11:03

大哥!!请问我要学MATLAB的GUI,有什么书籍么?实在不懂啊,我没有其他任何可视化工具使用的经历。谢谢了!谢谢了!!!我的邮箱street_ease@163.com

我的QQ71186528
页: [1] 2
查看完整版本: 毕业设计GUI用户界面制作 求教