exponenta event banner

Свойства рисунка пользовательского интерфейса

Управление внешним видом и поведением фигуры пользовательского интерфейса для uifigureПриложения на основе

Рисунки пользовательского интерфейса представляют собой контейнеры для создания приложений в App Designer или программно с помощью uifigure функция. Свойства управляют внешним видом и поведением фигуры пользовательского интерфейса. Используйте точечную нотацию для ссылки на определенный объект и свойство:

fig = uifigure;
fig.Name = 'My App'; 

Внешний вид окна

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

Цвет фона, указанный как триплет RGB, шестнадцатеричный код цвета или один из параметров цвета, перечисленных в таблице.

Для пользовательского цвета укажите триплет RGB или шестнадцатеричный цветовой код.

  • Триплет RGB - это трехэлементный вектор строки, элементы которого задают интенсивности красной, зеленой и синей составляющих цвета. Интенсивности должны находиться в диапазоне [0,1]; например, [0.4 0.6 0.7].

  • Шестнадцатеричный цветовой код - это символьный вектор или строковый скаляр, начинающийся с хэш-символа (#), за которыми следуют три или шесть шестнадцатеричных цифр, которые могут варьироваться от 0 кому F. Значения не чувствительны к регистру. Таким образом, цветовые коды '#FF8800', '#ff8800', '#F80', и '#f80' эквивалентны.

Можно также задать некоторые общие цвета по имени. В этой таблице перечислены параметры именованного цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

Имя цветаКраткое имяТриплет RGBШестнадцатеричный цветовой кодВнешность
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

'none'НеприменимоНеприменимоНеприменимоБез цвета

Вот триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию MATLAB ®, используемых на многих типах графиков.

Триплет RGBШестнадцатеричный цветовой кодВнешность
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

Стиль окна, указанный как один из следующих:

  • 'normal' - Окно фигуры не зависит от других окон, а другие окна доступны во время отображения фигуры.

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

    При наличии нескольких модальных окон последнее созданное окно сохраняет фокус и остается над всеми остальными окнами до тех пор, пока оно не станет невидимым, не вернется к обычному стилю окна или не будет удалено. В то время фокус возвращается к окну, которое было последним фокусом.

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

Примечание

Это некоторые важные характеристики WindowStyle собственность и некоторые рекомендуемые передовые методы:

  • При создании окон пользовательского интерфейса всегда указывайте WindowStyle собственность. Если вы также хотите установить Resize или Position свойства фигуры, затем установите WindowStyle сначала свойство.

  • Вы можете изменить WindowStyle свойство фигуры в любое время, в том числе когда фигура видна и содержит дочерние элементы. Однако в некоторых системах установка этого свойства может привести к миганию или исчезновению фигуры и ее повторному появлению в зависимости от реализации системой нормального и модального окон. Для получения наилучших визуальных результатов установите WindowStyle свойство во время создания или когда фигура невидима.

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

Когда WindowStyle имеет значение 'modal', окно фигуры пользовательского интерфейса блокирует взаимодействие клавиатуры и мыши в окне фигуры пользовательского интерфейса, которое было создано до него и имеет Visible свойство имеет значение 'on'. Например, в этом примере фигура 3 является модальной по отношению к фигуре 2, а фигура 2 является модальной по отношению к фигуре 1.

fig1 = uifigure('Name','Figure 1');
fig1.WindowStyle = 'modal';

fig2 = uifigure('Name','Figure 2');
fig2.WindowStyle = 'modal';

fig3 = uifigure('Name','Figure 3');
fig3.WindowStyle = 'modal';
Иерархия модальности не сохраняется, если в иерархии фигур присутствует комбинация модальных и нормальных фигур.

В отличие от модальных фигур, созданных с помощью figure функция, модальные фигуры, созданные с помощью uifigure функция не блокирует доступ к фигурам, созданным с помощью функции фигуры или рабочего стола MATLAB. Взаимодействие с окнами приложений, отличными от MATLAB, также не блокируется.

Ввод Ctrl + C, когда модальная фигура имеет фокус, приводит к тому, что эта фигура возвращается к 'normal' WindowStyle параметр свойства. Это позволяет пользователю вводить в командной строке.

Показатели пользовательского интерфейса с помощью WindowStyle свойство имеет значение 'modal' и Visible свойство имеет значение 'off' не ведите себя модально, пока MATLAB не сделает их видимыми. Поэтому модальное окно можно скрыть для последующего повторного использования, а не уничтожать.

Модальные фигуры не отображают дочерние элементы меню, встроенные меню или панели инструментов. Но не является ошибкой создание меню в модальной фигуре или изменение WindowStyle значение свойства 'modal' на рисунке с потомками меню. Menu объекты существуют, и фигура сохраняет их. При сбросе рисунка пользовательского интерфейса WindowStyle свойство для 'normal', меню отображаются.

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

  • 'normal' - Окно отображается в нормальном состоянии.

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

  • 'maximized' - окно заполняет экран. Кнопки сворачивания, восстановления и закрытия, предоставляемые операционной системой, отображаются в углу окна. Если окно имеет меню в нормальном состоянии, они присутствуют в этом состоянии.

  • 'fullscreen' - окно заполняет экран. Однако кнопки минимизации, восстановления и закрытия, предоставляемые операционной системой, скрыты. Если окно имеет меню в нормальном состоянии, они присутствуют в этом состоянии.

Нажатие кнопки «Свернуть», «Развернуть» или «Восстановить» операционной системы устанавливает значение WindowState соответственно собственности. Нажатие клавиш Ctrl + F11 (Windows ® и Linux ®) или Ctrl + Command + F (Mac OS) приводит к переключению'fullscreen' состояние. Установка этого свойства на закрепленном рисунке или в Online™ MATLAB не поддерживается.

Фигуры пользовательского интерфейса нельзя свернуть непосредственно из полноэкранного состояния.

Положение и размер

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

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

В этой таблице описывается каждый элемент вектора.

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

Единицы измерения, указанные как 'pixels'.

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

Это значение свойства идентично значению Position значение свойства.

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

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

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

  • 'on' - размер дочерних компонентов автоматически изменяется при изменении размера контейнера.

  • 'off' - Размер дочерних компонентов не изменяется.

AutoResizeChildren влияет на прямые нижестоящие элементы контейнера, а не на нижестоящие элементы внутри вложенных контейнеров.

Чтобы настроить поведение изменения размера, задайте AutoResizeChildren свойство для 'off' и создать SizeChangedFcn обратный вызов для контейнера. Дополнительные сведения см. в разделе Управление приложениями с изменяемым размером в App Designer.

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

Нанесение

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

Цветовая карта для UIAxes содержимое, указанное как mоколо-3 массив RGB (красный, зеленый, синий) триплетов, которые определяют m отдельные цвета.

Пример: uifigure('Colormap',[1 0 1; 0 0 1; 1 1 0]) устанавливает для карты цветов три цвета: пурпурный, синий и желтый.

MATLAB получает доступ к этим цветам по их номеру строки.

Карта прозрачности для содержимого осей, заданная как вектор значений между 0 и 1, включительно. Размер вектора может быть m-by-1 или 1-by-m. MATLAB обращается к альфа-значениям по их индексу в векторе. Альфамапы могут быть любой длины.

Указатель мыши

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

Символ указателя, указанный как одно из значений в следующей таблице или как 'custom'. Внешний вид символа зависит от операционной системы.

Стоимость

Результирующий символ (зависит от системы)

'arrow'

'ibeam'

'crosshair'

'watch' (занятая система)

'topl' или 'botr'

'topr' или 'botl'

'circle'

'cross'

'fleur'

'left' или 'right'

'top' или 'bottom'

'hand'

Пользовательский символ указателя

Чтобы создать пользовательский символ указателя, программно задайте Pointer свойство для 'custom' и используйте PointerShapeCData для определения символа. См. раздел PointerShapeCData для получения дополнительной информации.

Ограничения

  • Значения символов указателя 'circle', 'cross', и 'custom' не поддерживаются в веб-браузере Microsoft Edge ®.

  • Символы указателя, указанные Pointer свойство не отображается поверх компонентов интерфейса пользователя HTML, созданных с помощью uihtml функция.

Пользовательский символ указателя, указанный как 16около-16 матрица (для указателя 16 на 16 пикселей) или как 32около-32 матрица (для указателя 32 на 32 пиксела). Рисунок использует этот символ указателя при установке Pointer свойство для 'custom'.

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

  • 1 - Черный пиксель.

  • 2 - Белый пиксель.

  • NaN - Прозрачный пиксель, такой, что нижележащий экран показывает через.

Активный пиксель указателя, заданный как двухэлементный вектор. Вектор содержит индексы строк и столбцов определенного элемента в PointerShapeCData матрицу, которая соответствует требуемому активному пикселю. Значение по умолчанию [1 1] соответствует пикселю в левом верхнем углу указателя.

Если указано значение за пределами диапазона PointerShapeCData матрица, то указатель использует активный пиксель по умолчанию [1 1] вместо этого.

Это свойство применяется только в том случае, если Pointer свойство имеет значение 'custom'.

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

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

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

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

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

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

Изменение размера невидимого контейнера запускает SizeChangedFcn обратный вызов, когда он становится видимым.

Изменение Visible свойство контейнера не изменяет значения Visible свойств дочерних компонентов. Это верно, даже если скрытие контейнера приводит к скрытию дочерних компонентов.

Целевые оси на текущем рисунке пользовательского интерфейса, указанные как UIAxes, Axes, или PolarAxes объект или графический объект, такой как HeatmapChart.

Во всех фигурах пользовательского интерфейса, для которых существуют дочерние оси, всегда есть текущие оси. Текущие оси не обязательно должны быть самыми верхними, и установка осей в качестве текущих осей не приводит к их повторному отображению над всеми остальными осями. Если рисунок пользовательского интерфейса не содержит осей, get(gcf,'CurrentAxes') возвращает пустой массив.

Запрос CurrentAxes для получения текущего объекта-оси без принудительного создания осей, если таковая не существует.

Текущий объект, возвращаемый как дочерний объект фигуры пользовательского интерфейса. MATLAB устанавливает CurrentObject свойство последнего объекта, нажатого на рисунке пользовательского интерфейса.

Щелчок по объекту, HandleVisibility свойство - 'off' устанавливает CurrentObject свойство в пустое GraphicsPlaceholder массив.

Текущая точка, возвращаемая как двухэлементный вектор. Вектор содержит координаты (x, y) указателя мыши, измеренные в пикселях от нижнего левого угла фигуры пользовательского интерфейса. Если рисунок пользовательского интерфейса прокручивается, координаты измеряются из левого нижнего угла прокручиваемой области. Прокручиваемая область - это область, ограниченная пределами полос прокрутки.

Координаты обновляются при выполнении любого из следующих действий.

  • Нажмите кнопку мыши на рисунке пользовательского интерфейса.

  • Отпустите кнопку мыши после нажатия на нее в пределах рисунка пользовательского интерфейса.

  • Нажмите кнопку мыши на рисунке пользовательского интерфейса, а затем отпустите ее за пределами рисунка пользовательского интерфейса.

  • Поверните колесо прокрутки в пределах фигуры пользовательского интерфейса.

  • Переместите мышь в пределах фигуры (без нажатия каких-либо кнопок), пока WindowButtonMotionFcn свойство не является пустым.

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

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

Текущий символ, возвращаемый по мере нажатия последней клавиши. Это свойство обновляется, когда рисунок пользовательского интерфейса фокусируется, пока пользователь нажимает клавишу.

Тип выбора мыши, возвращенный как 'normal', 'extend', 'alt', или 'open'. Это свойство предоставляет информацию о последнем нажатии кнопки мыши, которое произошло в рисунке пользовательского интерфейса.

В этой таблице перечислены возможные SelectionType значения и действия пользователя, которые создают эти значения.

Стоимость

Соответствующее действие

'normal'

Щелкните левой кнопкой мыши.

'extend'

Любое из следующих действий:

  • Щелкните левой кнопкой мыши, удерживая нажатой клавишу Shift.

  • Щелкните средней кнопкой мыши.

  • Щелкните левой и правой кнопкой мыши.

'alt'

Одно из следующих действий:

  • Щелкните левой кнопкой мыши, удерживая нажатой клавишу «Control».

  • Щелкните правой кнопкой мыши.

'open'

Дважды щелкните любую кнопку мыши.

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

Установка для этого свойства значения 'on' включает прокрутку внутри контейнера. Однако существуют дополнительные потребности:

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

  • Компоненты, которые не помещаются в контейнер, должны находиться выше или справа от контейнера. Невозможно выполнить прокрутку к компонентам, расположенным ниже или слева от контейнера.

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

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

Общие обратные вызовы

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

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

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

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

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

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

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

Используйте SelectionType для определения того, нажал ли пользователь клавиши-модификаторы.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Обратные вызовы с клавиатуры

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

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

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

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

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

Эта функция обратного вызова выполняется, когда пользователь нажимает клавишу, в то время как фигура пользовательского интерфейса или дочерний компонент имеет фокус. Нажатие клавиши на компоненте, который принимает фокус клавиатуры (например, поле редактирования), не выполняет обратный вызов, если компонент не отключен. Можно отключить компонент, установив Enable или Editable свойство для 'off'.

Если пользователь нажимает несколько клавиш приблизительно одновременно, MATLAB обнаруживает все клавиши.

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

СобственностьОписание
Character

Символ, появляющийся в результате нажатия клавиши или клавиш.

Нажатие определенных клавиш или изменение клавиш с помощью клавиши Ctrl может вернуть непечатаемые символы в этом свойстве.

Нажатие некоторых клавиш (например, Ctrl, Alt, Shift) не приводит к созданию Character данные.

Modifier

Массив ячеек, содержащий имена нажатых клавиш-модификаторов, например, control, alt или shift. Если клавиши-модификаторы не нажаты, массив ячеек пуст.

Key

Нажатие клавиши, идентифицируемое строчной меткой на клавише или описательным словом, таким как 'space'.

SourceОбъект, имеющий фокус при нажатии клавиши.
EventName'KeyPress'

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

CurrentCharacter свойство также возвращает символьную информацию.

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

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

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

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

Эта функция обратного вызова выполняется, когда пользователь отпускает ключ, в то время как фигура пользовательского интерфейса или дочерний компонент имеет фокус. При отпускании клавиши на компоненте, который принимает фокус клавиатуры (например, поле редактирования), обратный вызов не выполняется, если компонент не отключен. Можно отключить компонент, установив Enable или Editable свойство для 'off'.

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

СобственностьОписание
Character

Символ, соответствующий отпускаемой клавише или клавишам.

Некоторые клавиши или комбинации клавиш могут возвращать непечатаемые символы в этом свойстве.

Нажатие и освобождение определенных клавиш (например, Ctrl, Alt, Shift) не приводит к созданию Character данные.

Modifier

Массив ячеек, содержащий имена выпущенных ключей-модификаторов, таких как control, alt или shift. Если клавиши-модификаторы не освобождены, массив ячеек пуст.

Key

Ключ освобождается, идентифицируется (строчной) меткой на ключе или описательным словом, таким как 'space'.

SourceОбъект, имеющий фокус при отпускании ключа.
EventName'KeyRelease'

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

Обратные вызовы окна

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

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

Рассмотрите возможность вызова delete для закрытия Figure в CloseRequestFcn обратный вызов:

  • В App Designer позвоните delete(app).

  • Для приложений, созданных программно, звоните delete(f), где f является Figure объект.

Если closeRequestFcn обратный вызов не содержит delete MATLAB никогда не закрывает окно. Вы всегда можете позвонить delete для принудительного закрытия окна.

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

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

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

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

Определите этот обратный вызов для настройки макета приложения при изменении размера контейнера (например, при изменении размера окна пользователем). В нем запишите код, чтобы настроить Position свойства дочерних компонентов.

Примечание

SizeChangedFcn обратный вызов не будет выполняться, если AutoResizeChildren свойство этого контейнера имеет значение 'off'. В App Designer вы можете сделать SizeChangedFcn путем выбора контейнера и снятия флажка AutoResityChildren на вкладке «Инспектор» обозревателя компонентов.

SizeChangedFcn обратный вызов выполняется в следующих случаях:

  • Этот контейнер становится видимым впервые.

  • Этот контейнер отображается при изменении его размера.

  • Этот контейнер становится видимым впервые после изменения его размера. Эта ситуация возникает, когда размер изменяется, когда контейнер невидим, а затем становится видимым позже.

Другие важные моменты, которые следует учитывать при определении SizeChangedFcn обратный вызов:

  • Рассмотрите возможность задержки отображения этого контейнера до тех пор, пока не появятся все переменные, SizeChangedFcn Определены виды использования. Эта практика может предотвратить SizeChangedFcn обратный вызов при возврате ошибки. Чтобы задержать отображение контейнера, установите его Visible свойство для 'off'. Затем установите Visible свойство для 'on' после определения переменных, которые SizeChangedFcn использует обратный вызов.

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

  • Доступ к контейнеру, размер которого изменяется из SizeChangedFcn, см. исходный объект (первый входной аргумент в обратном вызове) или используйте gcbo функция.

Альтернативными способами определения поведения изменения размера являются создание GridLayout или используйте параметры автозаполнения в App Designer. Эти параметры проще использовать, чем SizeChangedFcn обратные вызовы. Однако есть некоторые преимущества, которые SizeChangedFcn обратные вызовы имеют эти опции. Например:

  • Изменение размера компонента до заданного минимального или максимального размера.

  • Реализация нелинейных вариантов изменения размера, например, изменение размера компонента в зависимости от размера родительского контейнера.

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

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

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

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

Этот обратный вызов выполняется, когда пользователь щелкает:

  • Пустая область рисунка пользовательского интерфейса.

  • Компонент пользовательского интерфейса в пределах рисунка пользовательского интерфейса.

  • Графический объект в пределах рисунка пользовательского интерфейса, поддерживающий ButtonDownFcn собственность.

Например, щелчок axes объект запускает WindowButtonDownFcn обратный вызов.

Если пользователь щелкает UITable , обратный вызов не выполняется, если Enable свойство имеет значение 'off'.

См. список свойств для определенного графического объекта, чтобы определить, поддерживает ли он ButtonDownFcn собственность. Свойства графических объектов см. в разделе Свойства графических объектов.

Примечание

Обратный вызов выполняется при нажатии пользователем кнопки uiaxes компонент, хотя uiaxes компоненты не поддерживают ButtonDownFcn собственность.

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

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

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

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

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

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

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

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

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

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

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

Обратный вызов выполняется, когда пользователь:

  • Отпускает кнопку мыши в пустой области рисунка пользовательского интерфейса.

  • Отпускает кнопку мыши на компоненте пользовательского интерфейса в пределах рисунка пользовательского интерфейса.

  • Отпускает кнопку мыши на графическом объекте в пределах рисунка пользовательского интерфейса, который поддерживает ButtonDownFcn собственность.

Например, отпускание кнопки мыши на axes объект запускает WindowButtonUpFcn обратный вызов.

Если пользователь отпускает кнопку мыши на UITable , обратный вызов не выполняется, если Enable свойство имеет значение 'off'.

См. список свойств для определенного графического объекта, чтобы определить, поддерживает ли он ButtonDownFcn собственность. Свойства графических объектов см. в разделе Свойства графических объектов.

Действия «кнопка вверх» связаны с действиями «кнопка вниз» на рисунке пользовательского интерфейса. Указатель мыши должен находиться внутри фигуры пользовательского интерфейса, когда происходит действие «кнопка вниз», но он может находиться вне фигуры, когда происходит действие «кнопка вверх».

Примечание

Обратный вызов выполняется, когда пользователь отпускает кнопку мыши на uiaxes компонент, хотя uiaxes компоненты не поддерживают ButtonDownFcn собственность.

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

Окно (Window) - обратный вызов нажатием клавиши, указанный как одно из следующих значений:

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

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

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

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

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

СобственностьОписание
Character

Символ, появляющийся в результате нажатия клавиши или клавиш.

Нажатие определенных клавиш или изменение клавиш с помощью клавиши Ctrl может вернуть непечатаемые символы в этом свойстве.

Нажатие некоторых клавиш (например, Ctrl, Alt, Shift) не приводит к созданию Character данные.

Modifier

Массив ячеек, содержащий имена нажатых клавиш-модификаторов, например, control, alt или shift. Если клавиши-модификаторы не нажаты, массив ячеек пуст.

Key

Нажатие клавиши, идентифицируемое строчной меткой на клавише или описательным словом, таким как 'space'.

SourceОбъект, имеющий фокус при нажатии клавиши.
EventName'KeyPress'

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

CurrentCharacter свойство также возвращает символьную информацию.

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

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

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

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

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

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

СобственностьОписание
Character

Символ, соответствующий отпускаемой клавише или клавишам.

Некоторые клавиши или комбинации клавиш могут возвращать непечатаемые символы в этом свойстве.

Нажатие и освобождение определенных клавиш (например, Ctrl, Alt, Shift) не приводит к созданию Character данные.

Modifier

Массив ячеек, содержащий имена выпущенных ключей-модификаторов, таких как control, alt или shift. Если клавиши-модификаторы не освобождены, массив ячеек пуст.

Key

Ключ освобождается, идентифицируется (строчной) меткой на ключе или описательным словом, таким как 'space'.

SourceОбъект, имеющий фокус при отпускании ключа.
EventName'KeyRelease'

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

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

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

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

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

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

Этот обратный вызов не влияет на CurrentObject и SelectionType свойства.

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

Собственность

Содержание

VerticalScrollCount

Положительное или отрицательное число, указывающее направление и количество щелчков колесика прокрутки. Прокрутка вниз возвращает положительное значение. При прокрутке вверх возвращается отрицательное значение.

Число прокрутки по вертикали - это сумма всех щелчков колесика прокрутки, произошедших с момента последнего выполнения обратного вызова. Как правило, значение равно 1 или -1. Однако число прокрутки может иметь большую величину, если WindowScrollWheelFcn Возврат обратного вызова занимает много времени, или если пользователь вращает колесо прокрутки очень быстро.

VerticalScrollAmount

Постоянное значение 3.

Source

Объект, выполняющий обратный вызов.

EventName'WindowScrollWheel'.

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

Пример: Приложение для изменения пределов оси X

В этом примере показано, как создать приложение, отображающее график. Пользователь может выполнить прокрутку для изменения пределов оси X. Скопируйте и вставьте следующий код в редактор и запустите его.

function scroll_wheel
% Shows how to use WindowScrollWheelFcn property
%
   f = uifigure('WindowScrollWheelFcn',@figScroll,'Name','Scroll Wheel Demo');
   x = 0:.1:40;
   y = 4.*cos(x)./(x+2);
   a = axes(f); 
   h = plot(a,x,y);
   title(a,'Rotate the scroll wheel')

   function figScroll(~,event)
      if event.VerticalScrollCount > 0 
         xd = h.XData;
         inc = xd(end)/20;
         x = [0:.1:xd(end)+inc];
         re_eval(x)
      elseif event.VerticalScrollCount < 0 
         xd = h.XData;
         inc = xd(end)/20;
         % Don't let xd = 0
         x = [0:.1:xd(end)-inc+.1]; 
         re_eval(x)
      end
   end

   function re_eval(x)
      y = 4.*cos(x)./(x+2);
      h.YData = y;
      h.XData = x;
      a.XLim = [0 x(end)];
      drawnow
   end
end

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

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

Прерывание обратного вызова, указанное как '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 объект, возвращенный как пустой GraphicsPlaceholder или одномерный массив компонентных объектов. Нижестоящие элементы могут быть любыми компонентами, исключая другой Figure объект.

Невозможно добавить или удалить дочерний компонент с помощью Children собственность. Это свойство используется для просмотра списка нижестоящих элементов или изменения порядка их расположения. Порядок нижестоящих элементов в этом массиве отражает порядок расположения компонентов на экране.

Чтобы добавить дочерний элемент в этот список, установите Parent свойства дочернего компонента для Figure объект.

Видимость дескриптора объекта, указанного как 'off', 'callback', или 'on'. Это свойство предоставляет информацию о видимости Figure объект в родительском списке потомков. Значение по умолчанию - 'off' для предотвращения Figure объект от превращения в текущую фигуру (gcf) и для предотвращения нежелательных изменений функций в интерфейсе пользователя.

В этой таблице описывается результат установки каждого значения:

Значение HandleVisibilityОписание
'off'

Figure дескриптор объекта не виден из функций обратного вызова или функций, которые выполняются в окне команд. Кроме того, дескриптор объекта:

  • Не отображается в списках, возвращаемых корнем графики Children или CurrentFigure свойства.

  • Не возвращается функциями, которые обращаются к объектам путем поиска в иерархии объектов или запроса свойств объектов. Эти функции включают gcf, gco, get, findobj, clf, и close.

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

'callback'

Figure дескриптор объекта виден только из обратных вызовов или функций, вызываемых обратными вызовами, но не из функций, вызываемых из окна команд. Кроме того, дескриптор объекта не отображается в списках, возвращаемых графическим корнем Children или CurrentFigure свойства.

Этот параметр блокирует доступ к объекту в командной строке, но разрешает доступ к нему функциям обратного вызова.

'on'

Figure дескриптор объекта всегда виден.

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

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

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

Имя фигуры, указанное как символьный вектор или строковый скаляр.

Пример: uifigure('Name','Results') задает имя фигуры как 'Results'.

В App Designer значение по умолчанию Name свойство - 'MATLAB App'.

Источник или файл значка, указанный как вектор символа, скаляр строки или mоколо-n-на-3 массив цветных изображений. Если указано имя файла, это может быть имя файла изображения по пути MATLAB или полный путь к файлу изображения. Если вы планируете предоставить доступ к приложению другим пользователям, поместите файл изображения в путь MATLAB, чтобы упростить упаковку приложения.

Поддерживаемые форматы изображений: JPEG, PNG, GIF и mоколо-n-на-3 массив цветных изображений. Дополнительные сведения о массивах изображений truecolor см. в разделе Типы изображений. Анимированные GIF-файлы отображают только первый кадр.

Если для отображения значка в полном объеме недостаточно места, MATLAB масштабирует изображение по размеру.

Пример: 'icon.png' указывает файл значка по пути MATLAB.

Пример: 'C:\Documents\icon.png' указывает полный путь к файлу изображения.

Пример: fig = uifigure('Icon','peppers.png') создает фигуру пользовательского интерфейса, используя указанный файл изображения значка.

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

Число фигуры, возвращаемое в виде целого или пустого массива. Это значение используется для ссылки на рисунок. Например, figure(2) делает фигуру с Number значение свойства 2 текущий показатель.

Если IntegerHandle свойство имеет значение 'off', Number пустое свойство.

Если IntegerHandle является 'on', Number свойство является целым числом. При удалении фигуры MATLAB повторно использует номер для следующей фигуры.

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

При установке для этого свойства значения 'on', заголовок фигуры пользовательского интерфейса включает фразу 'Figure n', где n - число.

Оба NumberTitle и IntegerHandle свойства должны иметь значение 'on' для отображения номера в заголовке.

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

Если установить IntegerHandle свойство для 'on', MATLAB находит наименьшее целое значение, которое не используется существующим рисунком, и устанавливает Number свойство для этого значения. При удалении фигуры пользовательского интерфейса MATLAB может повторно использовать ее номер на новой фигуре.

Если установить IntegerHandle свойство для 'off', MATLAB не присваивает целочисленное значение фигуре пользовательского интерфейса и устанавливает значение Number для пустого массива.

Для отображения номера в строке заголовка: IntegerHandle и NumberTitle необходимо установить значение 'on'.

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

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

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

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

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

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