Maltab gui 使用函数学习记录

时间:2022-12-13 00:10:06

简要记录在MATLAB的 gui编写中常用的函数知识。

MATLABgui 和mfc有点像,但是比mfc的消息传输机制简单些,MATLAB都是一个控件一个响应。

一个控件可以有call back函数,是最常用的:点击按钮时,按钮下的Callback就会执行;拖动滑块时,滑块名下的callback就会执行;一般函数的执行部分都在call back下,可以通过设置控件的call back属性实现。

ButtonDownFcn:单击,这个函数名下的代码就会执行,如果有callback,会覆盖掉这个。

CreateFcn:在生成这个控件,显示之前,执行这个函数名下的代码。

DeleteFcn:在控件要销毁,但是被毁灭之前执行这个函数名下的代码。KeyPressFcn:当前控件获得焦点且有按键按下时执行。

 

1、常用函数记录

figure:创建窗口;axes:创建坐标;uitable:创建表格;

uimenu:创建菜单; uicontextmenu:创建右键快捷菜单;

uicontrol:创建控件,可以设置属性控制控件类型,‘style’为pushbutton为触控按钮;text为静态文本;edit为编辑文本;slider为滑动条;radiobutton为单选按钮;checkbox为复选框;listbox为列表框;popupmenu为弹出式菜单。uitoolbar:创建工具栏按钮;函数的具体属性可以在MATLAB中输入help或者doc + 想知道的函数,会有帮助文件指导。

2. 数据传递

使用guide命令创建的gui在每一个控件的回调函数头都会有:

functionmyc_Callback(hObject, eventdata, handles)

第一个参数是hObject,是跟这个callback所关联的控件的handles,在它自己的callback下,可以用代号-> hObject 来调用它。即控件自己的回调函数调用自己的属性,只用hObject.属性名就可以了。第二个参数是MATLAB的保留参数,没用到过。第三个handles是这个GUI界面的代号,可以通过它获取这个界面的所有信息。所以在控件A自己的回调函数中,要获取或者设置别的控件的属性,就用 handles.别的控件Tag.属性 ,在使用的时候可以把handles hObject 当做结构体使用,相当于调用其中的参数。

控件保存的数据,也可以通过finobj函数和get、set函数改变,首先使用finobj找到控件,获取句柄之后使用get函数获取值,使用set函数改变值。

在不同的gui之间可以使用函数值传递,也可以使用全局变量global。

f1= findobj(gcf,'Tag','Import_num');

f2= get(f1,'String');

set(f1,'String',’test’);

gcf返回当前Figure对象的句柄值

gca返回当前axes 对象的句柄值

gco返回当前鼠标单击的句柄值,该对象可以是除root 对象外的任意图形对象,并且Matlab 会把当前图形对象的句柄值存放在Figure 的CurrentObject属性中。