HTML Properties

Управляйте 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> теги. Если разметка, которую вы задаете, поддерживается в браузере Хрома, используемом фигурами 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. Затем эти данные могут синхронизироваться между HTML MATLAB компонент пользовательского интерфейса и объектом JavaScript.

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

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

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

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

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

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

Для получения дополнительной информации о том, как записать файл HTML, который включает синхронизацию данных и свойства htmlComponent Объект JavaScript, смотрите, Создают Файл HTML, Который Может Инициировать или Ответить на Изменения Данных.

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

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

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

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

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

Положение

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

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

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

Position значения относительно drawable area родительского контейнера. Область векторной и растровой графики является областью в границах контейнера и не включает область, занятую художественными оформлениями, такими как панель меню или заголовок.

Все измерения указаны в пикселях.

Внутреннее расположение и размер 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 аргумент называется событием. Можно запросить DataChangedData свойства объектов с помощью записи через точку. Например, event.PreviousData возвращает предыдущее значение Data прежде чем это обновилось или изменилось. DataChangedData объект не доступен для функций обратного вызова, заданных как векторы символов.

Эта таблица приводит свойства DataChangedData объект.

СвойствоОписание
DataНовые данные, следующие из последнего DataChanged событие
PreviousDataДанные перед последним DataChanged событие
Source

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

EventName'DataChanged'

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

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

  • Указатель на функцию.

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

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

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

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

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

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

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

  • Указатель на функцию.

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

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

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

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

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

Контроль выполнения обратного вызова

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

Прерывание коллбэка, заданное как 'on' или 'off'. Interruptible свойство определяет, может ли рабочий коллбэк быть прерван.

Существует два состояния обратного вызова:

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

  • Прерывающий обратный вызов — это обратный вызов, который пытается прервать текущий обратный вызов.

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

  • 'on' — Позволяет другим коллбэкам прерывать коллбэки объекта. Прерывание происходит на следующем этапе, где MATLAB обрабатывает очередь, такой как тогда, когда существует drawnowфигураФигура пользовательского интерфейсаgetframewaitfor, или pause команда.

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

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

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

Примечание

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

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

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

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

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

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

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

  • Прерывающий обратный вызов — это обратный вызов, который пытается прервать текущий обратный вызов.

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

  • 'queue' — Помещает прерывание обратного вызова в очередь, чтобы быть обработанным после рабочего выполнения концов коллбэка.

  • 'cancel' — Не выполняет прерывание обратного вызова.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Введенный в R2019b