MATLAB GUI 学习总结

1.MATLAB 中的属性与属性值

Matlab中,所有对象都有属性来定义它们的特征,正是通过设定这些属性来修正图形显示的方式。尽管许多属性所有的对象都有,但与每一种对象类型(比如坐标轴、线、曲面)相关的属性列表都是独一无二的。对象属性可包括诸如对象的位置、颜色、类型、父对象、子对象及其它内容。每一个不同对象都有和它相关的属性,可以改变这些属性而不影响同类型的其他对象。

1.1 get() 函数

get() 函数用于查询图形对象的属性。最常用的方式有两种:

get(h)
get(h,'PropertyName')

a = get(h) 返回一个结构体,它包含了图形对象 h 所有的属性和属性值。可以用

a.PropertyName 的方式访问 PropertyName 属性的属性值。

get(h,'PropertyName') 返回图形对象 h 中 PropertyName 属性的值。

1.2 set() 函数

set() 函数用于设置图形对象的属性。常用语法:

set(H,'PropertyName',PropertyValue,...)

H 为图形对象,PropertyName 为属性名,PropertyName 为属性值。

2.GUI 中的回调函数

回调函数是控件接收到用户操作时调用的一个特定函数。

2.1 回调函数自动命名

回调函数的函数名是 GUI 对其自动命名,当在设计界面添加一个控件并保存时,MATLAB 就会根据该控件的“tag”属性确定回调函数的名称。例如,当控件 pushbutton1 添加时,其“tag”属性为 pushbutton1 ,则它的回调函数就会命名为 pushbutton1_callback 。如果修改“tag”属性,那么它的回调函数也会跟着改变。

2.2 回调函数的输入参数

回调函数的输入参数也是由 GUI 自动确定的。常用的有 hObject 、 eventdata 、 handles 。

其中:

  • hObject 是当前回调函数图形对象的句柄。例如在回调函数 pushbutton1_callback 中,hObject 就是 pushbutton1的句柄。通过 hObject 可以利用 get 和 set 函数获得和设置当前图形对象的属性。
  • eventdata 是预留的输入参数。
  • handles 是一个结构体,存放里图形窗口中所有图形对象的句柄。可以在回调函数之间传递数据。例如:set(handles.text3, 'visible', 'off'); %修改 text3 的属性

2.3 GUI 程序文件

1)fig 文件

fig 文件时一个图形文件,在设计界面时创建的界面保存在 fig 文件中。包括控件、菜单等所有图形对象的属性。

2)m 文件

m 文件用来存放 m 文件代码。matlab 自动生成 m 文件,为 GUI 控制程序提供一个框架。

m 文件包含以下几个部分:

  • 主函数:主函数包括注释说明和窗口初始化程序,函数名为文件名。
  • 子函数 FileName_OpeningFcn :子函数 FileName_OpeningFcn 是打开窗口时的初始化程序,当窗口打开时立即执行这个函数,这个函数只会执行一次。FileName 为文件名。
  • 子函数 FileName_OutputFcn :子函数 FileName_OutputFcn 是窗口的输出子函数,定义输出到命令窗口的变量。
  • 其它子函数是控件的回调函数。

2.4 全局变量

在回调函数之间的数据传递可以使用定义全局变量的方法。global 指令用于声明全局变量。语法为:

global X Y Z

这里需要注意的是,我们必须要在每个回调函数中使用 global 指令,这样我们才能调用全局变量。

3. 其它常用函数

3.1 弹出检索文件的对话框 uigetfile

调用 uigetfile 函数可以弹出一个检索文件的对话框。

常用语法如下:

filename = uigetfile
[FileName,PathName,FilterIndex] = uigetfile(FilterSpec)
[FileName,PathName,FilterIndex] = uigetfile(FilterSpec,DialogTitle)
  • filename = uigetfile 弹出一个检索文件的对话框,列出当前路径下的所有文件,通过这个对话框选择文件并单击“打开”按钮后,如果文件存在,且文件名有效,则函数会返回文件名。
  • [FileName,PathName,FilterIndex] = uigetfile(FilterSpec) 在弹出的对话框中只显示文件名与 FilterSpec 匹配的文件。FilterSpec 可以是字符串也可以是字符串组成的阵列,支持通配符“*”。例如:
  • [filename, pathname]=uigetfile({'*.jpg';'*.bmp';'*.gif'}) %只显示 jpg、bmp、gif 类型的文件
  • [FileName,PathName,FilterIndex] = uigetfile(FilterSpec,DialogTitle) DialogTitle指定对话框标题

3.2 弹出一个保存文件的对话框 uiputfile

函数 uiputfile 可以弹出一个保存文件的对话框,使用方法与上文类似。


posted @ 2016-03-28 18:15  钉钉铛铛  阅读(1939)  评论(0编辑  收藏  举报