matlab区域按钮,MATLAB_GUI_教程连载(5)布局和面板(uipanel)

matlab区域按钮,MATLAB_GUI_教程连载(5)布局和面板(uipanel)

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];

结果如下:

图4

推荐文章