目录
前言MATLAB GUI 窗口中的元素窗口 figure窗口的常用属性如何获取一个窗口的属性有哪些属性值设置窗口的属性值
前言
每年的这个时候都会有做毕业设计的同学来找我问GUI的问题,我也很乐意回答他们,但是要问我你自己专业的知识,这我就扛不住了,我自己专业的知识都还掌握的不好。
我在网上看到的大多数的MATLAB GUI教程基本都是用GUIDE拖拽来做的,我当初自己学的时候也是从GUIDE开始的,这个号最开始的那些推送中讲的GUI都是用GUIDE做的,后来在桥哥(打浦桥程序员)的知识星球中做了几期用纯代码的方式编写GUI的练习,把用GUIDE做界面的习惯给改了。
我发现好多工科的毕设题目都要用到MATLAB,很可能老师会要求顺带做个GUI界面。所以我打算在这个月内多抽点时间来做一下MATLAB GUI的教程,由于我本人的水平有限,表达能力也有限,所以可能会存在一些问题,不过我会尽量避免。
MATLAB GUI 窗口中的元素
如下图所示:
GUI界面中的元素
在接下来的若干期中,我会逐个介绍一下
窗口 figure
要做一个界面,首当其冲的就是窗口,我们必须要创建一个窗口,然后才能在这个窗口中添加各种东西,这个窗口就相当于是一个容器。那么如何创建一个窗口呢?
h_fig = figure;
返回的h_fig
是所创建的窗口的句柄
,如果不理解句柄是啥,就把它看做是一个容器,h_fig
就是我们给刚创建的这个窗口起的名字,在这个窗口容器中我们可以添加我们想添加的控件。
创建的简单的窗口,如下图所示:
GUI界面中的元素
窗口的常用属性
但是像上面这样也太简单了,通常我们需要设置窗口的一些属性,那么如何查看窗口有哪些属性呢?在matlab的命令行中输入h_fig
回车,这个h_fig
就是上面写的那个,你要是没上面那句,直接输入这个是不行的。这样会在命令行中显示该窗口的所有属性,不过他不会一下子全部显示出来,你需要点击所有属性
才可以,如下图:
属性
下面列一下常用的属性:
这里还有一些窗口的回调函数我没列出来,我觉得一般毕设中的那些界面用不上吧,一般这几个就够用了,如果需要相关的功能请按照上面获取属性的方法,根据那些属性的名字推测哪个可能是你想要的,再去MATLAB的文档里看看说明。
如何获取一个窗口的属性有哪些属性值
知道有那些属性了,如何查看窗口的某个属性有那些属性值呢,以获取Units
的属性值为例:
在matlab的命令行中输入:
set(h_fig, 'Units')
回车后便可以看到有那些属性值了,这种方法不仅仅可用于figure也可以用于以后讲的其他控件,只要是想获取一个图形句柄的属性有哪些属性值,都可以这么用!
获取属性值
设置窗口的属性值
如果一下子需要设置多个属性值,可以用下面的方法来设置:
窗口句柄.属性名 = 属性值; 切记:这种方法要求组成属性名的每个单词首字母都要大写
。这种设置属性值的方法,对后面要讲的所有控件都适用。
h_fig = figure;
h_fig.NumberTitle = 'off'; % 关闭数字标题
h_fig.Name = '教程1(figure)'; % 窗口名字为 教程1(figure)
h_fig.MenuBar = 'none'; % 关闭figure默认的菜单栏
h_fig.ToolBar = 'none'; % 关闭figure默认的工具栏
h_fig.Color = 'k'; % 黑色
% Units一定要在Position之前设置
h_fig.Units = 'pixels'; % 像素为单位
h_fig.Position = [0, 0, 900, 100]; % 左下角点在屏幕的左下角宽900像素,高100像素
h_fig.Resize = 'off';
h_fig.Visible = 'on'; % 若为 off则隐藏了,不可见
运行结果如下:

关于Position那个,一般单位都取pixels
即:像素,Position 的值,请同学自己多试试就能搞清楚了。
窗口句柄.属性名 = 属性值; 它还有个等价的方式:
set(窗口句柄, '属性名', 属性值);
比如:
set(h_fig, 'Units', 'pixels'); % 像素为单位
set(h_fig, 'Position', [0, 0, 900, 100]); % 左下角点在屏幕的左下角宽900像素,高100像素
这种方式不要求组成属性名的每个单词首字母都要大写,全都小写也行。这种设置属性值的方法,对后面要讲的所有控件都适用。
不过呢,如果只需要设置一两个属性时,还是推荐用下面的这种方法:
h_fig = figure('属性1', '值1', '属性2', '值2', '属性3', '值3');
比如:
h_fig = figure('Name', '教程1(figure)', 'MenuBar', 'none', 'ToolBar', 'none');
