Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Aplicación programática que muestra una tabla

En este ejemplo se muestra cómo crear una tabla en una aplicación mediante la función.uitable También se muestra cómo modificar la apariencia de la tabla y cómo restringir la edición de la tabla en la aplicación en ejecución.

Cree una tabla que contenga datos numéricos simples

La función crea una tabla vacía.uitable Puede rellenar la tabla estableciendo la propiedad.Data Por ejemplo, puede crear una tabla que contenga valores cuadrados mágicos.

f = figure('Position', [100 100 752 250]); t = uitable('Parent', f, 'Position', [25 50 700 200], 'Data', magic(10))

t =    Table with properties:                  Data: [10x10 double]          ColumnWidth: 'auto'       ColumnEditable: []     CellEditCallback: ''             Position: [25 50 700 200]                Units: 'pixels'    Show all properties  

Cree una tabla que contenga tipos de datos mixtos

Mostrar tipos de datos mixtos estableciendo la propiedad en una matriz de celdas.Data

load patients LastName Age Weight Height SelfAssessedHealthStatus                   % load data PatientData = [LastName num2cell([Age Weight Height]) SelfAssessedHealthStatus];    % convert to cell array  t.Data = PatientData;

Personalice la pantalla

Puede personalizar la visualización de una tabla de varias maneras. Utilice la propiedad para agregar encabezados de columna.ColumnName Para crear encabezados de varias líneas, utilice el símbolo de tubería (|).

t.ColumnName = {'LastName', 'Age', 'Weight', 'Height', 'Self Assessed|Health Status'};

Para ajustar el ancho de las columnas, especifique la propiedad.ColumnWidth La propiedad es una matriz de celdas de 1 por N, donde N es el número de columnas de la tabla.ColumnWidth Establezca un ancho de columna específico o deje que MATLAB® establezca el ancho en función del contenido.

t.ColumnWidth = {100, 'auto', 'auto', 'auto', 150};

Para quitar los nombres de fila, establezca la propiedad en una matriz vacía ().RowName[]

t.RowName = [];

Cambie el tamaño de la tabla y quite cualquier espacio adicional mediante la propiedad.Position

t.Position = [15 25 495 200];

De forma predeterminada, las tablas utilizan el seccionamiento de filas. Para desactivar el seccionamiento de filas, establezca la propiedad en.RowStriping'off' Para controlar los colores de las franjas, establezca dos colores diferentes para la propiedad.BackgroundColor Utilice la propiedad para controlar el color del texto.ForegroundColor

t.BackgroundColor = [.4 .4 .4; .4 .4 .8];   t.ForegroundColor = [1 1 1];

Restringir la edición de valores de celda

Para restringir la capacidad del usuario para editar datos en la tabla, establezca la propiedad.ColumnEditable De forma predeterminada, los datos no se pueden editar en la aplicación. Establecer la propiedad para una columna permite al usuario editar datos en esa columna.ColumnEditabletrue

t.ColumnEditable = [false true true true true];

Cambiar formato de columna

La propiedad controla cómo se muestran y se editan los datos.ColumnFormat Para especificar opciones en una lista desplegable, especifique una matriz de vectores de caracteres como formato de columna. En este ejemplo, la columna tiene una lista desplegable que contiene cuatro opciones:,, y.Self Assessed Health StatusExcellentFairGoodPoor

t.ColumnFormat = {[] [] [] [] {'Excellent', 'Fair', 'Good', 'Poor'}};

Cree una devolución de llamada

El objeto tiene dos devoluciones de llamada de uso común.Mesa Se ejecuta cuando el usuario selecciona una celda diferente.CellSelectionCallback Se ejecuta cuando el usuario cambia un valor en una celda.CellEditCallback

t.CellEditCallback = @ageCheckCB;

Por ejemplo, si desea que la columna contenga valores entre y, establezca una función como esta:Age0120CellEditCallback

function ageCheckCB(src, eventdata) 
if (eventdata.Indices(2) == 2 && ...                  % check if column 2       (eventdata.NewData < 0 || eventdata.NewData > 120))    tableData = src.Data;    tableData{eventdata.Indices(1), eventdata.Indices(2)} = eventdata.PreviousData;    src.Data = tableData;                              % set the data back to its original value    warning('Age must be between 0 and 120.')          % warn the user end 
end 

Si el usuario especifica un valor que está fuera del intervalo aceptable, la función de devolución de llamada devuelve una advertencia y vuelve a establecer el valor de la celda en el valor anterior.

Obtener todas las propiedades de tabla

Para ver todas las propiedades de la tabla, utilice el comando.get

get(t)
          BackgroundColor: [2x3 double]              BeingDeleted: 'off'                BusyAction: 'queue'             ButtonDownFcn: ''          CellEditCallback: @ageCheckCB     CellSelectionCallback: ''                  Children: [0x0 handle]            ColumnEditable: [0 1 1 1 1]              ColumnFormat: {[]  []  []  []  {1x4 cell}}                ColumnName: {5x1 cell}            ColumnSortable: []               ColumnWidth: {[100]  'auto'  'auto'  'auto'  [150]}                 CreateFcn: ''                      Data: {100x5 cell}                 DeleteFcn: ''               DisplayData: {100x5 cell}     DisplayDataChangedFcn: ''                    Enable: 'on'                    Extent: [0 0 479 1940]                 FontAngle: 'normal'                  FontName: 'Helvetica'                  FontSize: 10                 FontUnits: 'points'                FontWeight: 'normal'           ForegroundColor: [1 1 1]          HandleVisibility: 'on'             InnerPosition: [15 25 495 200]             Interruptible: 'on'               KeyPressFcn: ''             KeyReleaseFcn: ''                    Layout: [0x0 matlab.ui.layout.LayoutOptions]             OuterPosition: [15 25 495 200]                    Parent: [1x1 Figure]                  Position: [15 25 495 200]      RearrangeableColumns: 'off'                   RowName: ''               RowStriping: 'on'                       Tag: ''                   Tooltip: ''                      Type: 'uitable'             UIContextMenu: [0x0 GraphicsPlaceholder]                     Units: 'pixels'                  UserData: []                   Visible: 'on'