Я уже спрашивал об этом на странице Matlab Answers, но не получил там ответа, поэтому попробую здесь.
У меня есть несколько чисел, которые я хочу показать в UITable. Поскольку мне нужно определенное форматирование значений (три цифры после запятой, без научного обозначения), я преобразовал значения в строки. Проблема в том, что эти строки по умолчанию выровнены по левому краю, что выглядит не очень красиво.
При использовании UITable в GUIDE я смог дополнить строки начальными пробелами, чтобы правильно их выровнять, как показано ниже.
data = {'1532.000'; ' 5.543'; ' 26.457'};
При использовании моноширинного шрифта значения отображаются в таблице следующим образом:
1532.000
5.543
26.457
В настоящее время я рассматриваю возможность перехода на App Designer. Я использую те же строки с пробелами, но здесь uitable, похоже, их лишает. То есть результат выглядит следующим образом:
1532.000
5.543
26.457
Есть ли способ заставить uitable
в App Designer сохранять пробелы, как это было в GUIDE? Конечно, было бы еще лучше напрямую выровнять строки по правому краю без заполнения, но, насколько я знаю, это невозможно.
Если это имеет значение: я использую Matlab R2016b.
Изменить:
Минимальный пример создания и заполнения UITable. Это простой графический интерфейс AppDesigner, в который я добавил только таблицу и кнопку (без изменения каких-либо атрибутов). Обратный вызов кнопки используется для добавления данных в таблицу.
classdef test < matlab.apps.AppBase
% Properties that correspond to app components
properties (Access = public)
UIFigure matlab.ui.Figure
UITable matlab.ui.control.Table
Button matlab.ui.control.Button
end
methods (Access = private)
% Button pushed function: Button
function ButtonPushed(app, event)
data = {'1532.000'; ' 5.543'; ' 26.457'};
app.UITable.Data = data;
end
end
% App initialization and construction
methods (Access = private)
% Create UIFigure and components
function createComponents(app)
% Create UIFigure
app.UIFigure = uifigure;
app.UIFigure.Position = [100 100 640 480];
app.UIFigure.Name = 'UI Figure';
setAutoResize(app, app.UIFigure, true)
% Create UITable
app.UITable = uitable(app.UIFigure);
app.UITable.ColumnName = {'Column 1'; 'Column 2'; 'Column 3'; 'Column 4'};
app.UITable.RowName = {};
app.UITable.Position = [127 180 302 185];
% Create Button
app.Button = uibutton(app.UIFigure, 'push');
app.Button.ButtonPushedFcn = createCallbackFcn(app, @ButtonPushed, true);
app.Button.Position = [220 104 100 22];
end
end
methods (Access = public)
% Construct app
function app = test()
% Create and configure components
createComponents(app)
% Register the app with App Designer
registerApp(app, app.UIFigure)
if nargout == 0
clear app
end
end
% Code that executes before app deletion
function delete(app)
% Delete UIFigure when app is deleted
delete(app.UIFigure)
end
end
end
После нажатия кнопки таблица выглядит следующим образом:
Обратите внимание, что AppDesigner позволяет мне изменять код только внутри функции ButtonPushed
.
uifigure
. - person Dev-iL   schedule 08.03.2017