matlab中position用法_MATLAB GUI 布局工具箱的介绍(再也不用头疼Position属性值的设置了)...

有一阵子没写过和GUI有关的推文了,前一阵子我学了点PyQt里面有界面的布局,就想着MATLAB中应该也有类似的功能,搜了一下还真有

HBox :水平布局

VBox:垂直布局

TabPanel:选项卡布局

Grid:网格布局

还有上面这几种的复合布局

如果能熟练使用这些个布局,那那些控件的Position属性的属性值就不用愁了

上面的HBox,VBox,TabPanel,Grid 这四种布局都在uiextras类里面。

Firstly,你要在matlab中点击“获取附加功能”,如下:

Then:

HBox

在matlab命令行中输入:

uiextras.HBox()

双击工作空间中的ans会出来一个属性检查器

根据它所提供这些,选择自己想要的属性, 下面举了一个例子,一般常用的也就这些吧,如下:

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

结果:

我把那个 Units 和 OuterPosition 去掉结果如下:

因为它默认的Units是normalized,OuterPosition是 [0, 0, 1, 1],所以这个布局会铺满整个窗口。

VBox

用同样的方法,来看一下VBox都有哪些属性:

没有了Width,在VBox中是Heights了,因为在水平方向上布局看的是高度嘛!其他的和HBox都差不多,用法也一样。

下面的例子和上面的基本一样,就是改了下布局方式:

clear

clc

close all

f = figure('Name', 'xxxx', ...

'Toolbar', 'none', ...

'NumberTitle', 'off', ...

'Menubar', 'none', ...

'Units', 'pixels', ...

'Position', [600, 300, 500, 200]);

VBox = uiextras.VBox();  % 创建一个垂直布局

VBox.Parent = f;  % 垂直布局的父对象

VBox.Padding = 5;  % 垂直布局距这个范围框距离上下左右的间隔为20

VBox.Spacing = 5;  % 布局内每个控件之间的间隔(此处是垂直方向的间隔)

VBox.Units = 'pixels';  % 整个布局的单位(用于调整

你可能感兴趣的:(matlab中position用法_MATLAB GUI 布局工具箱的介绍(再也不用头疼Position属性值的设置了)...)