2020-09-29 MATLAB App Designer——2020b版本的uitable列宽度出错的问题
背景
新版本matlab 2020b关于uitable的ColumnWidth属性更新,,允许设置为‘auto’,'fit','1x',1n单元等四种方式,帮助文件给出的参考如下:
Example:
uit = uitable(uifigure,'ColumnWidth','auto','Data',[1 2 3;4 5 6])
Example:
uit = uitable(uifigure,'ColumnWidth','fit','Data',[1 2 3;4 5 6])
Example:
uit = uitable(uifigure,'ColumnWidth',{64,60,40},'Data',[1 2 3;4 5 6])
Example:
uit = uitable(uifigure,'ColumnWidth',{'2x','1x','1x'},'Data',[1 2 3;4 5 6])
Example:
uit = uitable(uifigure,'ColumnWidth',{64,"auto",40},'Data',[1 2 3;4 5 6])
Example:
uit = uitable(uifigure,'ColumnWidth',{'fit','1x','3x'},'Data',[1 2 3;4 5 6])
应用问题
之前版本编写uitable并设置表格列宽度的时候,采用‘auto’来设置,表格宽度如下图,单列可以铺满整行,很美观,但对新版本来说,‘auto’属性就无法实现。

当采用2020b的时候,效果就很难看,单列宽度无法满铺,难看死了。

解决方法
通过对matlab 帮助文件中四种宽度设置的概念理解,之前版本的‘auto’对应的代码应该是被拆分成‘auto’和'1x'两种可能。
将新版本下的‘ColumnWidth’设置为‘1x’,效果理想,恢复正常。


对于多列的表格宽度设置
采用2020b之前的版本编写,'ColumnWidth'设置为‘auto’,2020b之前的版本设置'ColumnWidth'为{50,'auto','auto','auto','auto','auto'},效果理想,放大后也能全铺。
同样代码针对matlab 2020b的效果如下,难看死了

变通方法,至少一个为‘1x’,修改为{'fit','auto','1x','auto','auto','auto'}的效果

但全屏后的效果真难看

总结:'fit'是个好改进,‘auto’变垃圾,'1x'真难用