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

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

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

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

classdef MyClass < matlab.mixin.CustomDisplay

The CustomDisplay класс HandleCompatible, так что вы можете использовать его в комбинации с значениями и указателя.

Примечание

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

disp, отображение и details

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

Методы для отображения объектов пользовательской настройки

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

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

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

Все эти методы имеют защищенный доступ и должны быть определены как защищенные в вашем подклассе 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)

Методы утилиты

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

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

МетодИсходные данные Выходы

convertDimensionsToString

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

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

displayPropertyGroups

PropertyGroup массив

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

getClassNameForHeader

Объект

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

getDeletedHandleText

Ничего

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

getDetailedFooter

Объект

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

getDetailedHeader

Объект

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

getHandleText

Ничего

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

getSimpleHeader

Объект

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

Похожие темы