Управление внешним видом и поведением компонента пользовательского интерфейса HTML
Компоненты HTML UI позволяют отображать необработанный HTML-текст или встраивать HTML, JavaScript®или CSS в ваше приложение и для взаимодействия со сторонними библиотеками JavaScript. The 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>';
HTMLSource
- разметка 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>')
задает разметку.
Data
- Данные MATLABДанные MATLAB, заданные как любой тип данных MATLAB. Используйте этот аргумент, когда значение HTMLSource
- путь к HTML файла, определяющему объект JavaScript. Затем эти данные могут быть синхронизированы между компонентом UI MATLAB HTML и объектом JavaScript.
Чтобы синхронизировать значение Data
свойство между MATLAB и сторонним содержимым, который вы внедряете в ваше приложение, создайте setup
функция в HTML файла, которая соединяет объект JavaScript под названием htmlComponent
в компонент HTML UI в 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
функция. The Data
свойство является единственным свойством, которое синхронизируется с JavaScript.
См. jsonencode
для получения дополнительной информации о типах данных, которые она поддерживает. Если jsonencode
функция не поддерживает ваш тип данных, затем используйте функцию преобразования типа данных, например num2str
, для преобразования данных в поддерживаемый тип. Затем установите его как значение Data
свойство.
Для получения дополнительной информации о том, как записать HTML файла, который позволяет синхронизировать данные и свойства htmlComponent
Объект JavaScript, см., Создают HTML Файла, Которые Могут Вызвать или Ответить На Изменения Данных.
Visible
- Состояние видимости'on'
(по умолчанию) | логическое значение включения/выключенияСостояние видимости, заданное как 'on'
или 'off'
, или как числовое или логическое 1
(true
) или 0
(false
). Значение 'on'
эквивалентно true
, и 'off'
эквивалентно false
. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState
.
'on'
- Отобразите объект.
'off'
- Скрыть объект, не удаляя его. Вы по-прежнему можете получить доступ к свойствам невидимого компонента пользовательского интерфейса.
Чтобы ускорить запуск приложения, установите Visible
свойство к 'off'
для всех компонентов пользовательского интерфейса, которые не должны появляться при запуске.
Tooltip
- Подсказка''
(дефолт) | вектор символов | массив ячеек векторов символов | строковые массивы | 1-D категориальный массивПодсказка, заданная как вектор символов, массив ячеек из векторов символов, строковые массивы или 1-D категориальный массив. Используйте это свойство для отображения сообщения при наведении указателя мыши на компонент во время выполнения. Подсказка отображается, даже когда компонент отключен. Чтобы отобразить несколько линии текста, задайте массив ячеек из векторов символов или строковые массивы. Каждый элемент массива становится отдельной строкой текста. Если вы задаете это свойство как категориальный массив, MATLAB использует значения в массиве, а не полный набор категорий.
ContextMenu
- Контекстное менюGraphicsPlaceholder
массив (по умолчанию) | ContextMenu
объектКонтекстное меню, заданное как ContextMenu
объект, созданный с использованием uicontextmenu
функция. Используйте это свойство для отображения контекстного меню при щелчке правой кнопкой мыши по компоненту.
Примечание
Это свойство не влияет, когда HTMLSource
задано свойство.
Position
- Расположение и размер компонента HTML UI[100 100 100 100]
(по умолчанию) | [left bottom width height]
Расположение и размер HTML компонента пользовательского интерфейса относительно родительского контейнера, заданные как четырехэлементный вектор формы [left bottom width height]
. Эта таблица описывает каждый элемент в векторе.
Элемент | Описание |
---|---|
left | Расстояние от внутреннего левого края родительского контейнера до внешнего левого края компонента HTML UI |
bottom | Расстояние от внутреннего нижнего ребра родительского контейнера до внешнего нижнего ребра компонента HTML UI |
width | Расстояние между правым и левым внешними краями компонента HTML UI |
height | Расстояние между верхним и нижним внешними краями компонента HTML UI |
The Position
значения относятся к drawable area родительского контейнера. Область векторной и растровой графики является областью внутри границ контейнера и не включает область, занимаемую украшениями, такими как панель меню или заголовок.
Все измерения указаны в пикселях модулей.
InnerPosition
- Внутреннее расположение и размер компонента HTML UI[100 100 100 100]
(по умолчанию) | [left bottom width height]
Внутреннее расположение и размер компонента HTML UI, заданные как четырехэлементный вектор формы [left bottom width height]
. Все измерения указаны в пикселях модулей. Это значение свойства идентично Position
свойство.
OuterPosition
- Внешнее местоположение и размер компонента HTML UI[100 100 100 100]
(по умолчанию) | [left bottom width height]
Это свойство доступно только для чтения.
Внешнее местоположение и размер компонента HTML UI, возвращенные как четырехэлементный вектор формы [left bottom width height]
. Все измерения указаны в пикселях модулей. Это значение свойства идентично Position
свойство.
Layout
- опции размещенияLayoutOptions
массив (по умолчанию) | GridLayoutOptions
объектОпции размещения, заданные как 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 UI компонента охватывающим смежные строки или столбцы, задайте Row
или Column
свойство как двухэлементный вектор. Для примера этот компонент пользовательского интерфейса HTML охватывает столбцы 2
через 3
.
h.Layout.Column = [2 3];
DataChangedFcn
- Коллбэк при изменении данных''
(по умолчанию) | указатель на функцию | массив ячеек | вектор символовКоллбэк при изменении данных, заданный как одно из следующих значений:
Указатель на функцию.
Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.
Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.
Когда значение Data
изменения свойств в htmlComponent
Объект JavaScript, Data
свойство компонента MATLAB HTML UI обновляется, и этот коллбэк выполняется.
Эта функция обратного вызова может получить доступ к определенной информации об изменениях данных в объекте JavaScript. MATLAB передает информацию в DataChangedData
объект как второй аргумент функции обратного вызова. В App Designer аргумент называется event
. Можно запросить DataChangedData
свойства объекта с использованием записи через точку. Для примера, event.PreviousData
возвращает предыдущее значение Data
до последнего обновления или изменения. The DataChangedData
объект недоступен для функций обратного вызова, заданных как векторы символов.
В этой таблице перечислены свойства DataChangedData
объект.
Свойство | Описание |
---|---|
Data | Самые последние данные, полученные в результате последнего DataChanged событие |
PreviousData | Данные перед последней DataChanged событие |
Source | Компонент пользовательского интерфейса HTML MATLAB, который выполняет коллбэк |
EventName | 'DataChanged' |
Для получения дополнительной информации о записи коллбэков см. Раздел «Запись коллбэков в App Designer».
CreateFcn
- Функция создания''
(по умолчанию) | указатель на функцию | массив ячеек | вектор символовФункция создания объектов, заданная в качестве одного из следующих значений:
Указатель на функцию.
Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.
Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.
Дополнительные сведения об указании коллбэка как указателя на функцию, массива ячеек или вектора символов см. в разделе Запись коллбэков в App Designer.
Это свойство задает функцию обратного вызова, которая должна выполняться, когда MATLAB создает объект. MATLAB инициализирует все значения свойств перед выполнением CreateFcn
коллбэк. Если вы не задаете CreateFcn
свойство, затем MATLAB выполняет функцию создания по умолчанию.
Установка CreateFcn
свойство в существующем компоненте не имеет никакого эффекта.
Если вы задаете это свойство как указатель на функцию или массив ячеек, можно получить доступ к объекту, который создается с помощью первого аргумента функции обратного вызова. В противном случае используйте gcbo
функция для доступа к объекту.
DeleteFcn
- Функция удаления''
(по умолчанию) | указатель на функцию | массив ячеек | вектор символовФункция удаления объектов, заданная в качестве одного из следующих значений:
Указатель на функцию.
Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.
Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.
Дополнительные сведения об указании коллбэка как указателя на функцию, массива ячеек или вектора символов см. в разделе Запись коллбэков в App Designer.
Это свойство задает функцию обратного вызова, которая должна выполняться, когда MATLAB удаляет объект. MATLAB выполняет DeleteFcn
коллбэк перед уничтожением свойств объекта. Если вы не задаете DeleteFcn
свойство, затем MATLAB выполняет функцию удаления по умолчанию.
Если вы задаете это свойство как указатель на функцию или массив ячеек, можно получить доступ к удаляемому объекту с помощью первого аргумента функции обратного вызова. В противном случае используйте gcbo
функция для доступа к объекту.
Interruptible
- Прерывание коллбэка'on'
(по умолчанию) | логическое значение включения/выключенияПрерывание коллбэка, заданное как 'on'
или 'off'
, или как числовое или логическое 1
(true
) или 0
(false
). Значение 'on'
эквивалентно true
, и 'off'
эквивалентно false
. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState
.
Это свойство определяет, можно ли прерывать выполняемый коллбэк. Существует два состояния коллбэка:
Обратный коллбэк running - это актуальный на данный момент коллбэк.
Обратный коллбэк interrupting - это коллбэк, который пытается прервать текущий коллбэк.
Всякий раз, когда MATLAB вызывает коллбэк, этот коллбэк пытается прервать текущий коллбэк (если он существует). The Interruptible
свойство объекта, имеющего текущий коллбэк, определяет, разрешено ли прерывание.
Значение 'on'
позволяет другим коллбэкам прерывать коллбэки объекта. Прерывание происходит в следующей точке, где MATLAB обрабатывает очередь, например, когда есть drawnow
, figure
, uifigure
, getframe
, waitfor
, или pause
команда.
Если текущий коллбэк содержит одну из этих команд, MATLAB останавливает выполнение коллбэка в этой точке и выполняет прерывание обратного вызова MATLAB возобновляет выполнение текущего коллбэка после завершения прерывания обратного вызова.
Если текущий коллбэк не содержит одну из этих команд, MATLAB завершает выполнение коллбэка без прерывания.
Значение 'off'
блокирует все попытки прерывания. The BusyAction
свойство объекта, имеющего прерывание обратного вызова, определяет, отменяется ли прерывание обратного вызова или помещается в очередь.
Примечание
Прерывание и выполнение коллбэка происходят по-разному в таких ситуациях:
Если прерывание обратного вызова является DeleteFcn
, CloseRequestFcn
или SizeChangedFcn
коллбэк, тогда прерывание происходит независимо от Interruptible
значение свойства.
Если текущий коллбэк выполняющегося в данного момента, waitfor
function, тогда прерывание происходит независимо от Interruptible
значение свойства.
Timer
объекты выполняются в соответствии с расписанием независимо от Interruptible
значение свойства.
Когда происходит прерывание, MATLAB не сохраняет состояние свойств или отображения. Для примера, объект, возвращенный gca
или gcf
команда может измениться при выполнении другого коллбэка.
BusyAction
- постановка в очередь коллбэков'queue'
(по умолчанию) | 'cancel'
Постановка в очередь коллбэков, заданная как 'queue'
или 'cancel'
. The BusyAction
свойство определяет, как MATLAB обрабатывает выполнение прерываний обратного вызова. Существует два состояния коллбэка:
Обратный коллбэк running - это актуальный на данный момент коллбэк.
Обратный коллбэк interrupting - это коллбэк, который пытается прервать текущий коллбэк.
Всякий раз, когда MATLAB вызывает коллбэк, этот коллбэк пытается прервать текущий коллбэк. The Interruptible
свойство объекта, имеющего текущий коллбэк, определяет, разрешено ли прерывание. Если прерывание не разрешено, то BusyAction
свойство объекта, имеющего прерывание обратного вызова, определяет, будет ли оно сброшено или помещено в очередь. Это возможные значения BusyAction
свойство:
'queue'
- помещает прерывание обратного вызова в очередь вызовов, подлежащих обработке после концов обратного коллбэка.
'cancel'
- Не выполняет прерывание обратного вызова.
BeingDeleted
- Статус удаленияЭто свойство доступно только для чтения.
Статус удаления, возвращенный как логическое значение включения/выключения типа matlab.lang.OnOffSwitchState
.
MATLAB устанавливает BeingDeleted
свойство к 'on'
когда DeleteFcn
коллбэк начинает выполняться. The BeingDeleted
свойство остается установленным на 'on'
пока объект компонента не перестанет существовать.
Проверьте значение BeingDeleted
свойство, чтобы убедиться, что объект не будет удален до запроса или изменения.
Parent
- Родительский контейнерFigure
объект (по умолчанию) | Panel
| объекта Tab
| объекта ButtonGroup
| объекта GridLayout
объектРодительский контейнер, заданный как Figure
объект, созданный с использованием uifigure
функция, или один из ее дочерних контейнеров: Tab
, Panel
, ButtonGroup
, или GridLayout
. Если контейнер не задан, MATLAB вызывает uifigure
функция для создания нового Figure
объект, который служит родительским контейнером.
HandleVisibility
- Видимость указателя на объект'on'
(по умолчанию) | 'callback'
| 'off'
Видимость указателя на объект, заданная как 'on'
, 'callback'
, или 'off'
.
Это свойство контролирует видимость объекта в его родительский список дочерних элементов. Когда объект не отображается в родительский список дочерних элементов, он не возвращается с помощью функций, которые получают объекты, просматривая иерархию объектов или запрашивая свойства. Эти функции включают get
, findobj
, clf
, и close
. Объекты действительны, даже если они не видны. Если вы можете получить доступ к объекту, можно задать и получить его свойства, и передать его в любую функцию, которая работает с объектами.
Значение HandleVisibility | Описание |
---|---|
'on' | Объект всегда отображается. |
'callback' | Объект виден из обратных коллбэков или функций, вызываемых коллбэками, но не из функций, инициируемых из командной строки. Эта опция блокирует доступ к объекту в командной строке, но позволяет функциям обратного вызова обращаться к нему. |
'off' | Объект невидим в любое время. Эта опция используется для предотвращения непреднамеренных изменений пользовательского интерфейса другой функцией. Установите HandleVisibility на 'off' временно скрыть объект во время выполнения этой функции. |
Type
- Тип графического объекта'uihtml'
Это свойство доступно только для чтения.
Тип графического объекта, возвращенный как 'uihtml'
.
Tag
- Идентификатор объекта''
(по умолчанию) | символьный вектор | строковый скалярИдентификатор объекта, заданный как вектор символов или строковый скаляр. Можно задать уникальное Tag
значение, которое служит идентификатором для объекта. Когда вам нужен доступ к объекту в другом месте вашего кода, вы можете использовать findobj
функция для поиска объекта на основе Tag
значение.
UserData
- Пользовательские данные[]
(по умолчанию) | массивПользовательские данные, заданные как любой массив MATLAB. Для примера можно задать скаляр, вектор, матрицу, массив ячеек, символьный массив, таблицу или структуру. Используйте это свойство для хранения произвольных данных на объекте.
Если вы работаете в App Designer, создайте общие или частную собственность в приложении, чтобы делиться данными вместо использования UserData
свойство. Для получения дополнительной информации см. раздел «Обмен данными в приложениях App Designer».
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.