exponenta event banner

Пользовательский интерфейс отображения

Отображение окна команд

MATLAB ® отображает информацию в окне команд, когда оператор, не завершенный точкой с запятой, возвращает переменную. Например, эта инструкция создает структуру с полем, содержащим число 7.

a.field1 = 7

MATLAB отображает имя переменной, класс и значение.

a = 

  struct with fields:

    field1: 7

MATLAB предоставляет определяемые пользователем классы с аналогичными функциональными возможностями отображения. Определяемые пользователем классы могут настраивать способ отображения объектов класса в MATLAB с помощью API, предоставляемого matlab.mixin.CustomDisplay класс. Чтобы использовать этот API, выведите класс из matlab.mixin.CustomDisplay.

Отображение объектов по умолчанию

MATLAB добавляет методы по умолчанию с именем disp и display для всех классов MATLAB, которые не реализуют собственные методы с этими именами. Эти методы не отображаются, но создают простой экран по умолчанию.

Простое отображение по умолчанию состоит из следующих частей:

  • Заголовок с именем класса и размерами для нескалярных массивов.

  • Список всех нескрытых общих свойств, отображаемых в порядке определения в классе.

Фактическое отображение зависит от того, является ли объект скалярным или нескалярным. Кроме того, существуют специальные дисплеи для скалярного дескриптора удаленного объекта и пустых массивов объектов. Объекты во всех этих состояниях отображаются по-разному, если у них нет свойств.

details создает подробный экран по умолчанию. Подробный экран добавляет следующие элементы к простому экрану:

  • Использование полных имен классов

  • Ссылка на handle класс, если объект является дескриптором

  • Ссылки на methods, events, и superclasses функции, выполняемые на объекте.

Пример отображения объектов в MATLAB см. в разделе Класс с отображением объектов по умолчанию.

Свойства, отображаемые по умолчанию

MATLAB отображает свойства объектов, которые имеют открытый доступ и не скрыты (см. Атрибуты свойств). Унаследованные абстрактные свойства исключены из отображения. Если отображаемый объект является скалярным, также включаются все динамические свойства, присоединенные к объекту.

Класс CustomDisplay

matlab.mixin.CustomDisplay предоставляет интерфейс, который можно использовать для настройки отображения объектов для данного класса. Чтобы использовать этот интерфейс, выведите класс из CustomDisplay:

classdef MyClass < matlab.mixin.CustomDisplay

CustomDisplay класс - HandleCompatible, так что вы можете использовать его в сочетании как со значением, так и с суперклассами дескрипторов.

Примечание

Вы не можете использовать matlab.mixin.CustomDisplay для получения пользовательского отображения классов перечисления.

disp, display и details

CustomDisplay интерфейс не позволяет переопределить disp, display, и details. Вместо этого переопределите любую комбинацию методов настройки, определенных для этой цели.

Методы настройки просмотра объектов

Существует две группы методов, которые используются для настройки отображения объектов для класса:

  • Методы конструктора элементов позволяют создавать строки, используемые для стандартного отображения. Переопределите любой из этих методов для изменения соответствующих частей экрана.

  • Методы обработчика состояний вызываются для объектов в определенных состояниях, таких как скалярные, нескалярные и так далее. Переопределите любой из этих методов для обработки объектов в определенном состоянии.

Все эти методы имеют защищенный доступ и должны быть определены как защищенные в подклассе CustomDisplay (то есть Access = protected).

Части отображения объекта

Есть три части, которые составляют стандартный экран объекта - верхний колонтитул, список свойств и нижний колонтитул

Например, здесь представлен стандартный вид объекта для containers.Map объект:

Отображение объекта по умолчанию не включает нижний колонтитул. Подробный экран предоставляет дополнительную информацию:

Можно настроить, как MATLAB отображает объекты в результате выражений, отображающих объекты в окне команд, таких как незавершенные инструкции, возвращающие объекты или вызывающие disp и display. Результаты, отображаемые при вызове details для объекта или массива объектов не изменяются CustomDisplay API.

Методы конструктора элементов

Каждая часть отображения объекта имеет связанный метод, который собирает соответствующую часть отображения.

МетодЦельДефолт
getHeader

Создайте текст, используемый для заголовка.

Возвращает значение char векторы, [class(obj), ' with properties:'] связывание имени класса с всплывающим окном справки

getPropertyGroups

Определите, как и какие свойства отображаются, включая порядок, значения и группировку.

Возвращает массив PropertyGroup объекты, определяющие способ отображения свойств

getFooter

Создайте текст, используемый для нижнего колонтитула.

Существует два нижних колонтитула:

  • Простое отображение - возвращает пустое значение char вектор

  • Детальное отображение - возвращает связанные вызовы methods, events, и superclasses для этого класса

Состояния объектов, влияющие на отображение

Существует четыре состояния объектов, влияющих на отображение объектов в MATLAB:

  • Допустимый скалярный объект

  • Массив нескалярных объектов

  • Пустой массив объектов

  • Скалярный дескриптор удаленного объекта

Методы обработчика состояния

Каждое состояние объекта имеет связанный метод, который MATLAB вызывает всякий раз, когда отображаются объекты, находящиеся в этом конкретном состоянии.

Метод обработчика состоянияВызывается для объекта в этом состоянии
displayScalarObject

(isa(obj,'handle') && isvalid(obj)) && prod(size(obj)) == 1

displayNonScalarObject

prod(size(obj)) > 1

displayEmptyObject

prod(size(obj)) == 0

displayScalarHandleToDeletedObject

isa(obj,'handle') && isscalar(obj) && ~isvalid(obj)

Служебные методы

CustomDisplay класс предоставляет служебные методы, возвращающие строки, используемые в различных частях различных параметров отображения. Эти статические методы возвращают текст, упрощающий создание пользовательских отображений объектов.

Если дисплей компьютера не поддерживает гипертекстовое связывание, строки возвращаются без ссылок.

МетодИсходные данные Продукция

convertDimensionsToString

Допустимый массив объектов

Размеры объекта, преобразованные в char вектор; определяется путем вызова size(obj)

displayPropertyGroups

PropertyGroup множество

Отображение заголовков и определенных групп свойств

getClassNameForHeader

Объект

Простое имя класса, связанное с документацией объекта

getDeletedHandleText

Ничего

Текст 'handle to deleted' связан с документацией по удаленным дескрипторам

getDetailedFooter

Объект

Текст, содержащий фразу 'Methods, Events, Superclasses', при этом каждая линия связи выполняет соответствующую команду на входном объекте

getDetailedHeader

Объект

Текст, содержащий имя связанного класса, ссылку на страницу дескриптора (если класс дескриптора) и 'with properties:'

getHandleText

Ничего

Текст 'handle' связан с разделом документации, в котором описываются объекты-дескрипторы

getSimpleHeader

Объект

Текст, содержащий имя связанного класса и фразу 'with properties:'

Связанные темы