1、GUI新手之——教你读懂GUI的M文件GUIDE生成的GUI的M文件控制了你编制的GUI界面的所有属性和行为,或者说外观和对用户操作的响应。比如说按下一个按钮或者选择了一个菜单项之类。M文件包括了运行你整个界面程序所需要的全部代码,包括所有GUI组件的CALLBACKS函数。其实这些callbacks函数算是M文件里的子程序,callback里面就填写你所期望程序做的动作,比如画一个图或者算一个算式。插入,关于什么是子程序 懂的人跳过^_^function[avg,med]=newstats(u)%Primaryfunction%=length(u);avg=mean(u,n);med=median(u,n);functiona=mean(v,n) %Subfunction%=sum(v)/n;functionm=median(v,n) %Subfunction%=sort(v);ifrem(n,2)==1 m=w((n+1)/2);else m=(w(n/2)+w(n/2+1))/2;end 以上就是一个大的程序functionnestats,它下面另外包含了两个小的functionmean和median,这样在大程序的里面就可以以如上的方式调用它们了。子程序的好处在于如果你总是要重复用到一组计算方式的时候,那你就把这组重复计算方式类似以上的方法编写成一个子程序,避免大量重复代码。在M文件里面,会看到最外层,也就是最上面那一一行functionvarargout=setfire(varargin) (setfire是我m文件存的名字)就是那个大程序框,或者什么callback之类。看上去那个复杂,其实就跟上面这个一样的道理。只不过是M文件的类似avg=mean(u,n);med=median(u,n);这两句话系统隐藏(就当它是隐藏好了)起来了,它会在你点击鼠标(或者响应操作)时候自动去调用执行一次callback函数。所以你只用管把代码写入响应的函数名下就行了。至于系统为什么会自动调用,我们不用管,我们只用知道,我点击鼠标,我拖动滑竿时,系统会执行哪里的代码。就够了。一、M文件的数据管理模式 SharingDatawiththeHandlesStructure:用handles这个东西共享数据 在你运行你的GUI的时候,M文件会自动生成一个叫做handles的东西(准确的说它属于handles类型的结构体,且取的名字也叫做handles),不用管那么复杂,只用知道你可以从它这里找到GUI的所有数据,比如说控件的信息,菜单信息,axes信息。想象handles就是一个缸了,它里面装载了所有的信息,而且这个缸在各个控件的callback之间传来传去,理所当然那每个控件的callback都可以放入一些想放入的数据,也可以从里面取出任何想要的数据包括别的控件的信息(比如滑竿的当前值,edittext的当前值)和别的控件放进去的数据。 所以,用handles可以达到的目的有两个:a,各个控件的callback的信息交换 (current_data是随便设置的变量名) =X;在某控件下的callback写入这一句,就表示你把这个数据放缸里了 guidata(hObject,handles);接着别忘了保存~! 然后在你需要的地方把它从缸里捞出来 X1=;b,读取GUI控件的信息,自然也可以设置GUI控件的信息(比如说背景色随着按钮点击而变换之类,或者你想让按钮A点一下,字符B跳一下,也行。)all_choices是随便取的变量名,my_menu是你那个菜单项的TAG名字 all_choices=get(,'String'); current_choice=all_choices{get(,'Value')};这样current_choice就得到了用户界面操作中,目录或者菜单的选择结果。所以,要什么信息,。 就行了。如果是自己的数据,;如果是控件信息,就用getset二、M-File里的各个函数代表什么意思 在设计面板设计排列好自己需要的各种按钮或者编辑框之后,下一步任务便是添加自己的响应代码。Openingfunction 添加在它名下的代码,在GUI开始运行但是还不可见的时候
Matlab初学者笔记 来自淘豆网m.daumloan.com转载请标明出处.