适用于整个窗口宽度

时间:2015-05-01 02:51:14

标签: matlab user-interface matlab-guide matlab-uitable

我想以编程方式(或在GUIDE中)将修复为初始化时面板的整个宽度。我怎样才能做到这一点?

我所设法的只是改变单列的像素大小。我希望uitable在那个时候是100%的页面宽度。当我的窗口处于最小化状态时,GUI看起来很好,但是当我最大化它时,uitable只是页面宽度的一半左右。 (但是,整个面板的高度不是整个面板的高度,大约是整个页面的1/2)

GUI以编写。

这是我现在正在尝试的代码:

data = populateTable;
parentPosition = get(handles.uipanel4, 'position');
uitablePosition = [x y parentPosition(3)-2 parentPosition(4)-2]; 
set(handles.uitable, 'Position', uitablePosition);
set(handles.uitable, 'Visible', 'on'); 
set(handles.uitable, 'Data',data, 'ColumnFormat',{'numeric'});

2 个答案:

答案 0 :(得分:1)

可能的解决方案是将positionfigure的{​​{1}}设置为normalized,然后将表格的位置设置为[0 0 1 1] < / p>

f = figure
set(f,'unit','normalized')
set(f,'position',[0.1 0.1 0.5 0.5])
data = rand(13);
for i=1:length(data)
   col_names{i}=['Col. # ' int2str(i)];
end
for i=1:length(data)
   row_names{i}=['Row. # ' int2str(i)];
end
t = uitable(f, 'Data', data,'unit','normalized', ...
   'Position', [0 0 1 1],'columnname',col_names, ...
   'rowname',row_names);

答案 1 :(得分:0)

初始化时,您需要设置uitable的 位置 属性。

首先,获取uitable父对象的位置。那可能是一个uipanel或一个人物。假设hParent是uitable父级的句柄。

parentPosition = get(hParent, 'position');

然后,为新的uitable创建位置向量,并使用父级的宽度和高度。您可能希望减去几个像素的填充。我会在这里减去两个像素。

uitablePosition = [x y parentPosition(3)-2 parentPosition (4)-2];

您可以将x和y设置为1或2,具体取决于表的位置。

uitable( ... 'units','pixels','position', uitablePosition )

您可以在图的调整大小功能中实现相同的想法。