1

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

我所做的只是改变单列的像素大小。我希望当时 uitable 是页面宽度的 100%。当我的窗口处于最小化形式时,GUI 看起来很好,但是当我最大化它时,uitable 只有页面宽度的一半左右。(但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'});
4

2 回答 2

1

一种可能的解决方案是将positionfigure和 表的 设置为normalized,然后将表的位置设置为[0 0 1 1]

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);
于 2015-05-01T09:08:44.077 回答
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 )

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

于 2015-05-01T12:57:24.290 回答