App Designer: Format headings on uitable

The table below is a uitable created within App Designer that has been modified using the following code:
app.UITable2.ColumnName = {'node iD', 'X', 'Y', 'Z'};
app.UITable2.ColumnWidth = {80, 80, 80, 80};
nodeindex = (1:1:length(app.D.Coord))';
nodeid = num2cell(nodeindex);
Xcoord = num2cell(app.D.Coord(1,:)');
Ycoord = num2cell(app.D.Coord(2,:)');
Zcoord = num2cell(app.D.Coord(3,:)');
app.UITable2.Data = [nodeid Xcoord Ycoord Zcoord];
I wish to do two things:
  1. Format the column headers (modify text font and weight, text colour and background)
  2. Centrally align the data within the table.
Any help would be appreciated. I have searched through the documentation and other similar answers but have found nothing as of yet that seems to work.
Thanks in advance, Sam

Answers (2)

I am not sure if it is still an issue to you guys, but I wrote ccTools, a lib that turns possible the customization of the header of the uitable (and a lot of more things, like a new filterable table class). I hope it helps! :)
f = uifigure;
g = uigridlayout(f, 'RowHeight', {'1x'}, 'ColumnWidth', {'1x'});
t = uitable(g, 'Data', table("#"+string((1:100)'), (1:100)', (1:100)'+.1, (1:100)'+.001, (1:100)'+.00001, randn(100,1)));
drawnow
ccTools.compCustomization(t, 'backgroundHeaderColor', '#52555c', ...
'borderRadius', '10px', ...
'fontFamily', 'Times New Roman', ...
'color', 'white');
ES
ES on 9 Jan 2018
Edited: ES on 9 Jan 2018
You can use html to format the headings, values in table!
You may start here https://undocumentedmatlab.com/blog/gui-formatting-using-html

3 Comments

Thanks for your response, as of yet I haven't found success. Is HTML code supported in app designer? Each time I follow the examples listed, the HTML code appears in the headings rather than modifying it.
headers = {'<html><b>Node iD</b></html>', '<html><b>X</b></html>',...
'<html><b>Y</b></html>','<html><b>Z</b></html>'};
app.UITable2.ColumnName = headers;
HTML is not yet recognized in AppDesigner R2020b, so no way yet to format column/row headers in uitable.
This answer shows how to create a UITable within a UIFigure (eg, app designer) that appears to have formatted column names. It moves the column names into the first row of the data and the applies formatting to make it appear as though the first line of data is actually a table header. The same logica can be applied to row names.

Sign in to comment.

Categories

Find more on Develop Apps Using App Designer in Help Center and File Exchange

Products

Asked:

on 9 Jan 2018

Edited:

on 19 Jun 2023

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!