MATLAB_GUI_教程连载(4)axes
布局
Actually 这个在之前的推送中讲地很详细:MATLAB GUI 布局工具箱的介绍(再也不用头疼Position属性值的设置了),但是呢为了让我这个MATLAB GUI的连载的内容更加完整,我就在这就又放了一次。不过不全写,这里只讲三个布局,分别是:水平,垂直,网格。最后会结合之前讲的三个控件举一个实例。
讲前面那几个控件的时候都要手动给出Position属性的值,往往这个值都要自己算的,挺麻烦的,而且缩放窗口时控件的位置大小和位置都固定不动。但是用了布局后就不用为这些问题而烦恼了。
获取布局工具箱
在matlab中点击“获取附加功能”,如下:
图1
搜索:GUI Layout ToolBox
图2
水平布局
在matlab命令行中输入:
H_layout = uiextras.HBox
双击工作空间中的H_layout会出来一个属性检查器
图3
根据它所提供这些,选择自己想要的属性,一般常用的也就这些吧,如下:
Parent
Padding
Spacing
Widths
常用的就这4个,另外还有两个可以了解一下
Units
OuterPosition
Note: 有一点要注意,这个Widths属性必须在所有控件都添加完之后才能设置,具体看一下面的实例就明白了。因为这个Widths是用来设置水平布局中的每个控件的宽度的,当控件都添加完后才能确定水平布局中放了几个控件,所以只有在控件都添加完后才能设置Widths属性。
这些属性的用途写在了下面程序的注释中
clear
clc
close all
f = figure('Name', 'xxxx', ...
'Toolbar', 'none', ...
'NumberTitle', 'off', ...
'Menubar', 'none', ...
'Units', 'pixels', ...
'Position', [600, 300, 500, 200]);
HBox = uiextras.HBox(); % 创建一个水平布局
HBox.Parent = f; % 水平布局的父对象
HBox.Padding = 20; % 水平布局距这个范围框距离上下左右的间隔为20
HBox.Spacing = 20; % 布局内每个控件之间的间隔(此处是水平方向的间隔)
HBox.Units = 'pixels'; % 整个布局的单位(用于调整布局的左下角坐标),如果不设置则为normalized
HBox.OuterPosition = [50, 20, 300, 100]; % 布局的左下角坐标及宽度
btn1 = uicontrol('Parent', HBox, 'Style', 'Pushbutton');
btn2 = uicontrol('Parent', HBox, 'Style', 'Pushbutton');
btn3 = uicontrol('Parent', HBox, 'Style', 'Pushbutton');
btn4 = uicontrol('Parent', HBox, 'Style', 'Pushbutton');
% 第一个控件宽20pix,剩下的三个控件按1:2:3分割剩下的宽度。
HBox.Widths = [20, -1, -2, -3];
结果如下: