exponenta event banner

Свойства HTML

Управление внешним видом и поведением компонента пользовательского интерфейса HTML

Компоненты пользовательского интерфейса HTML позволяют отображать необработанный текст HTML или встраивать HTML, JavaScript ® или CSS в приложение и взаимодействовать с библиотеками JavaScript сторонних производителей. HTML свойства управляют внешним видом и поведением компонента пользовательского интерфейса HTML. Используйте точечную нотацию для ссылки на определенный объект и свойство.

fig = uifigure;
h = uihtml(fig); 
h.Position = [100 100 150 100];
h.HTMLSource = '<p style="font-family:sans-serif">This is <mark>marked</mark> text.</p>';

HTML

развернуть все

Разметка HTML или файл, указанный как вектор символов или скаляр строки, содержащий разметку HTML или путь к файлу HTML. Все HTML-разметки и файлы должны быть правильно сформированы. Если указанный вектор символов или строковый скаляр заканчивается на .html, то предполагается путь к HTML-файлу.

При встраивании разметки HTML указывать не нужно <html> или <body> теги. Если указанная разметка поддерживается в браузере Chromium, используемом фигурами MATLAB ®, созданными с помощью uifigure функция, затем она будет визуализирована. Если для кода требуется дополнительная структура, попробуйте использовать HTML-файл.

Если установить HTMLSource свойство пути к HTML-файлу, файл HTML должен находиться в месте, к которому может получить доступ локальная файловая система. Если вы используете вспомогательные файлы, такие как JavaScript, CSS, библиотеки или изображения, поместите файлы в расположение, к которому может получить доступ локальная файловая система, укажите на них ссылку в HTML-файле и установите HTMLSource к пути к HTML-файлу. Поддерживающие файлы не могут находиться в относительном каталоге рядом с HTML-файлом или выше него.

Пример: h = uihtml('HTMLSource','CustomCharts.html') указывает HTML-файл.

Пример: h = uihtml('HTMLSource','<p>This is <span style="color:red">red</span> text.</p>') указывает разметку.

Данные MATLAB, указанные как любой тип данных MATLAB. Использовать этот аргумент при значении HTMLSource - путь к HTML-файлу, определяющему объект JavaScript. Затем эти данные можно синхронизировать между компонентом интерфейса пользователя MATLAB HTML и объектом JavaScript.

Синхронизация значения Data свойство между MATLAB и сторонним содержимым, которое вы встраиваете в приложение, создайте setup функция в HTML-файле, соединяющая объект JavaScript с именем htmlComponent к компоненту пользовательского интерфейса HTML в MATLAB. Затем установите HTMLSource значение свойства для пути к файлу.

Изменения в значении Data свойство запускает события обратного вызова только в одном направлении. В частности,

  • Когда Data установлено в MATLAB, Data имущества htmlComponent Объект JavaScript также обновляет и запускает прослушиватели событий JavaScript 'DataChanged' событие.

  • Когда htmlComponent.Data установлен в JavaScript, Data свойство компонента HTML UI в MATLAB также обновляет и запускает DataChangedFcn обратный вызов.

При наличии таких данных, как массивы вложенных ячеек, массивы структур или данные массива таблиц MATLAB, может потребоваться дополнительная информация о преобразовании данных между MATLAB и JavaScript. Когда Data свойство компонента HTML UI устанавливается в MATLAB, данные преобразуются с помощью jsonencode функция, синхронизированная с JavaScript, проанализированная с помощью JSON.parse () и, наконец, установленная на Data имущества htmlComponent Объект JavaScript. Преобразования происходят в противоположном направлении также с помощью JSON.stringify () и jsondecode функция. Data свойство является единственным свойством, синхронизируемым с JavaScript.

См. раздел jsonencode для получения дополнительной информации о поддерживаемых типах данных. Если jsonencode функция не поддерживает тип данных, затем используйте функцию преобразования типа данных, например num2str, чтобы преобразовать данные в поддерживаемый тип. Затем установите его в качестве значения Data собственность.

Дополнительные сведения о записи HTML-файла, обеспечивающего синхронизацию данных, и о свойствах htmlComponent объект JavaScript, см. раздел Создание HTML-файла, который может инициировать изменения данных или реагировать на них.

Интерактивность

развернуть все

Состояние видимости, указанное как 'on' или 'off'или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства в качестве логического значения. Значение сохраняется как логическое значение типа вкл/выкл matlab.lang.OnOffSwitchState.

  • 'on' - Просмотр объекта.

  • 'off' - Скрыть объект, не удаляя его. По-прежнему можно получить доступ к свойствам невидимого компонента пользовательского интерфейса.

Чтобы приложение начиналось быстрее, установите Visible свойство для 'off' для всех компонентов пользовательского интерфейса, которые не должны появляться при запуске.

Подсказка, заданная как символьный вектор, массив ячеек символьных векторов, строковый массив или 1-D категориальный массив. Это свойство используется для отображения сообщения при наведении указателя на компонент во время выполнения. Подсказка отображается, даже если компонент отключен. Чтобы отобразить несколько строк текста, укажите массив ячеек из символьных векторов или строковый массив. Каждый элемент в массиве становится отдельной строкой текста. Если это свойство указано как категориальный массив, MATLAB использует значения в массиве, а не полный набор категорий.

Контекстное меню, указанное как ContextMenu объект, созданный с помощью uicontextmenu функция. Это свойство используется для отображения контекстного меню при щелчке правой кнопкой мыши на компоненте.

Примечание

Это свойство не действует, если HTMLSource свойство установлено.

Положение

развернуть все

Расположение и размер компонента пользовательского интерфейса HTML относительно родительского контейнера, заданного как четырехэлементный вектор формы [left bottom width height]. В этой таблице описывается каждый элемент вектора.

ЭлементОписание
leftРасстояние от внутреннего левого края родительского контейнера до внешнего левого края компонента пользовательского интерфейса HTML
bottomРасстояние от внутреннего нижнего края родительского контейнера до внешнего нижнего края компонента пользовательского интерфейса HTML
widthРасстояние между правым и левым внешними краями компонента пользовательского интерфейса HTML
heightРасстояние между верхним и нижним внешними краями компонента пользовательского интерфейса HTML

Position значения относятся к области извлечения родительского контейнера. Извлекаемая область представляет собой область внутри границ контейнера и не включает область, занятую украшениями, такими как строка меню или заголовок.

Все измерения представлены в единицах пикселей.

Внутреннее расположение и размер компонента пользовательского интерфейса HTML, заданного как четырехэлементный вектор формы [left bottom width height]. Все измерения представлены в единицах пикселей. Это значение свойства идентично значению Position собственность.

Это свойство доступно только для чтения.

Внешнее расположение и размер компонента пользовательского интерфейса HTML, возвращаемого в виде четырехэлементного вектора формы [left bottom width height]. Все измерения представлены в единицах пикселей. Это значение свойства идентично значению Position собственность.

Параметры компоновки, указанные как GridLayoutOptions объект. Это свойство задает параметры для компонентов, являющихся дочерними для контейнеров компоновки сетки. Если компонент не является нижестоящим элементом контейнера компоновки сетки (например, является нижестоящим элементом фигуры или панели), то это свойство является пустым и не действует. Однако если компонент является дочерним для контейнера компоновки сетки, можно поместить компонент в нужную строку и столбец сетки, установив значение Row и Column свойства на панели GridLayoutOptions объект.

Например, этот код помещает компонент пользовательского интерфейса HTML в третью строку и второй столбец родительской сетки.

g = uigridlayout([4 3]);
h = uihtml(g);
h.HTMLSource = '<body style="background-color:powderblue;"><p>Hello World!</p></body>';
h.Layout.Row = 3;
h.Layout.Column = 2;

Чтобы сделать компонент пользовательского интерфейса HTML непрерывным строками или столбцами, укажите Row или Column свойство как двухэлементный вектор. Например, этот компонент пользовательского интерфейса HTML охватывает столбцы 2 через 3.

h.Layout.Column = [2 3];

Отзывы

развернуть все

Обратный вызов при изменении данных, указанный как одно из следующих значений:

  • Дескриптор функции.

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

  • Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуется). MATLAB вычисляет это выражение в базовой рабочей области.

Когда значение Data изменения свойств в htmlComponent объект JavaScript, Data свойство компонента интерфейса пользователя HTML MATLAB обновляется, и выполняется обратный вызов.

Эта функция обратного вызова может получить доступ к определенной информации об изменениях данных в объекте JavaScript. MATLAB передает информацию в DataChangedData объект в качестве второго аргумента функции обратного вызова. В App Designer аргумент называется event. Вы можете запросить DataChangedData свойства объекта с использованием точечной нотации. Например, event.PreviousData возвращает предыдущее значение Data до последнего обновления или изменения. DataChangedData недоступен для функций обратного вызова, указанных как векторы символов.

В этой таблице перечислены свойства DataChangedData объект.

СобственностьОписание
DataПоследние данные, полученные в результате последнего DataChanged событие
PreviousDataДанные перед последним DataChanged событие
Source

Компонент интерфейса пользователя MATLAB HTML, выполняющий обратный вызов

EventName'DataChanged'

Дополнительные сведения о записи обратных вызовов см. в разделе Запись обратных вызовов в App Designer.

Функция создания объекта, заданная как одно из следующих значений:

  • Дескриптор функции.

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

  • Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуется). MATLAB вычисляет это выражение в базовой рабочей области.

Дополнительные сведения об указании обратного вызова в качестве дескриптора функции, массива ячеек или символьного вектора см. в разделе Запись обратных вызовов в App Designer.

Это свойство определяет функцию обратного вызова, выполняемую при создании объекта MATLAB. MATLAB инициализирует все значения свойств перед выполнением CreateFcn обратный вызов. Если не указать CreateFcn , то MATLAB выполняет функцию создания по умолчанию.

Установка CreateFcn свойство существующего компонента не оказывает никакого влияния.

Если это свойство указано как дескриптор функции или массив ячеек, можно получить доступ к объекту, создаваемому с помощью первого аргумента функции обратного вызова. В противном случае используйте gcbo для доступа к объекту.

Функция удаления объекта, заданная как одно из следующих значений:

  • Дескриптор функции.

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

  • Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуется). MATLAB вычисляет это выражение в базовой рабочей области.

Дополнительные сведения об указании обратного вызова в качестве дескриптора функции, массива ячеек или символьного вектора см. в разделе Запись обратных вызовов в App Designer.

Это свойство определяет функцию обратного вызова, выполняемую при удалении объекта MATLAB. MATLAB выполняет команду DeleteFcn обратный вызов перед уничтожением свойств объекта. Если не указать DeleteFcn , то MATLAB выполняет функцию удаления по умолчанию.

Если это свойство указано как дескриптор функции или массив ячеек, можно получить доступ к удаляемому объекту с помощью первого аргумента функции обратного вызова. В противном случае используйте gcbo для доступа к объекту.

Управление выполнением обратного вызова

развернуть все

Прерывание обратного вызова, указанное как 'on' или 'off'или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства в качестве логического значения. Значение сохраняется как логическое значение типа вкл/выкл matlab.lang.OnOffSwitchState.

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

  • Выполняемый обратный вызов - это выполняемый в данный момент обратный вызов.

  • Обратный вызов с прерыванием - это обратный вызов, который пытается прервать выполняющийся обратный вызов.

Всякий раз, когда MATLAB вызывает обратный вызов, этот обратный вызов пытается прервать выполняющийся обратный вызов (если он существует). Interruptible свойство объекта, владеющего выполняющимся обратным вызовом, определяет, разрешено ли прерывание.

  • Значение 'on' позволяет другим обратным вызовам прерывать обратные вызовы объекта. Прерывание происходит в следующей точке, где MATLAB обрабатывает очередь, например, при наличии drawnow, figure, uifigure, getframe, waitfor, или pause команда.

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

    • Если выполняемый обратный вызов не содержит одну из этих команд, MATLAB завершает выполнение обратного вызова без прерывания.

  • Значение 'off' блокирует все попытки прерывания. BusyAction свойство объекта, владеющего прерывистым обратным вызовом, определяет, отбрасывается ли прерывистый обратный вызов или помещается в очередь.

Примечание

Прерывание и выполнение обратного вызова ведут себя по-разному в следующих ситуациях:

  • Если обратный вызов с прерыванием является DeleteFcn, CloseRequestFcn или SizeChangedFcn обратный вызов, то прерывание происходит независимо от Interruptible значение свойства.

  • Если выполняемый обратный вызов в данный момент выполняется waitfor функция, то прерывание происходит независимо от Interruptible значение свойства.

  • Timer объекты выполняются в соответствии с графиком независимо от Interruptible значение свойства.

Когда происходит прерывание, MATLAB не сохраняет состояние свойств или отображения. Например, объект, возвращенный gca или gcf при выполнении другого обратного вызова команда может измениться.

Очередь обратного вызова, указанная как 'queue' или 'cancel'. BusyAction определяет, как MATLAB обрабатывает выполнение прерывания обратных вызовов. Существует два состояния обратного вызова:

  • Выполняемый обратный вызов - это выполняемый в данный момент обратный вызов.

  • Обратный вызов с прерыванием - это обратный вызов, который пытается прервать выполняющийся обратный вызов.

Всякий раз, когда MATLAB вызывает обратный вызов, этот обратный вызов пытается прервать выполняющийся обратный вызов. Interruptible свойство объекта, владеющего выполняющимся обратным вызовом, определяет, разрешено ли прерывание. Если прерывание не разрешено, то BusyAction свойство объекта, владеющего прерывистым обратным вызовом, определяет, отбрасывается он или помещается в очередь. Это возможные значения BusyAction свойство:

  • 'queue' - помещает обратный вызов с прерыванием в очередь, подлежащую обработке после завершения выполнения обратного вызова.

  • 'cancel' - не выполняет обратный вызов прерывания.

Это свойство доступно только для чтения.

Состояние удаления, возвращаемое как логическое значение включения/выключения типа matlab.lang.OnOffSwitchState.

MATLAB устанавливает BeingDeleted свойство для 'on' когда DeleteFcn обратный вызов начинает выполнение. BeingDeleted свойство остается установленным в значение 'on' до тех пор, пока объект-компонент больше не будет существовать.

Проверьте значение BeingDeleted для проверки того, что объект не будет удален перед запросом или изменением.

Родительский/дочерний

развернуть все

Родительский контейнер, указанный как Figure объект, созданный с помощью uifigure функцию или один из ее дочерних контейнеров: Tab, Panel, ButtonGroup, или GridLayout. Если контейнер не указан, MATLAB вызывает uifigure для создания новой функции Figure объект, который служит родительским контейнером.

Видимость дескриптора объекта, указанного как 'on', 'callback', или 'off'.

Это свойство управляет видимостью объекта в родительском списке потомков. Если объект не виден в списке нижестоящих элементов родительского объекта, он не возвращается функциями, получающими объекты путем поиска в иерархии объектов или запроса свойств. Эти функции включают get, findobj, clf, и close. Объекты действительны, даже если они не видны. При наличии доступа к объекту можно задать и получить его свойства и передать его любой функции, которая работает с объектами.

Значение HandleVisibilityОписание
'on'Объект всегда виден.
'callback'Объект виден из обратных вызовов или функций, вызываемых обратными вызовами, но не из функций, вызываемых из командной строки. Этот параметр блокирует доступ к объекту в командной строке, но разрешает доступ к нему функциям обратного вызова.
'off'Объект всегда невидим. Этот параметр полезен для предотвращения непреднамеренных изменений пользовательского интерфейса другой функцией. Установите HandleVisibility кому 'off' , чтобы временно скрыть объект во время выполнения этой функции.

Идентификаторы

развернуть все

Это свойство доступно только для чтения.

Тип графического объекта, возвращаемого как 'uihtml'.

Идентификатор объекта, заданный как вектор символа или скаляр строки. Можно указать уникальный Tag для использования в качестве идентификатора объекта. При необходимости доступа к объекту в другом месте кода можно использовать findobj для поиска объекта на основе Tag значение.

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

Если вы работаете в App Designer, создайте открытые или частные свойства в приложении для совместного использования данных вместо использования UserData собственность. Дополнительные сведения см. в разделе Общий доступ к данным в приложениях App Designer.

Представлен в R2019b