matlab app designer: 表格table中的内容居中显示

matlab app designer: 表格table中的内容居中显示

在app designer中,表格内容默认居右显示(如下所示),并且没有可以更改为其它显示方式的按钮,该文给出了一种居中显示的方法。
matlab app designer: 表格table中的内容居中显示_第1张图片

  • 在填写表格内容的程序之后,加上如下代码,效果如图:
s = uistyle('HorizontalAlignment','center');
addStyle(app.UITable,s,'table','');

matlab app designer: 表格table中的内容居中显示_第2张图片

注:
怎么能把列的名称也同样居中?
没有很好的方法(不是我说的,matlab工程师的观点),不过非要实现的话,可以出歪招:删掉列名称,把列名称作为表的一行。具体例子,可以参考下面程序:

% T: your initial data stored in a table
T = array2table(rand(5,3),'VariableNames',["Lancaster","Cincinnati","Sofia"]);

% 1. Convert table to cell, move header names into row 1.
C = [T.Properties.VariableNames; table2cell(T)];

% Create two uitables for comparison
uifig = uifigure(); 
uifig.Position(3:4) = [ 679   420]; 
uitTable = uitable(uifig,'data',T,'Units','Normalize','Position',[.05 .05 .4 .8]);
uitCell = uitable(uifig,'data',C,'ColumnName',{},'RowName',{},'Units','Normalize','Position',[.55 .05 .4 .8]);
% Switch order of shaded rows
uitCell.BackgroundColor = flipud(uitCell.BackgroundColor);

% Center all cells of the table & bolden the first row
uisCenter = uistyle('HorizontalAlignment', 'center'); 
uisBold = uistyle('FontWeight','bold'); 
addStyle(uitTable, uisCenter)
addStyle(uitCell, uisCenter)
addStyle(uitCell, uisBold, 'row',1)

借鉴自:https://ww2.mathworks.cn/matlabcentral/answers/838473-how-to-center-column-names-in-table

你可能感兴趣的:(matlab,app,designer,matlab)