UI Figure Properties

Управляйте внешним видом и поведением фигуры пользовательского интерфейса для 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 свойство во время создания или когда рисунок невидим.

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

Когда WindowStyle установлено в 'modal', окно UI Figure блокирует взаимодействия клавиатуры и мыши в окно UI Figure, которая была создана до него и имеет свои 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 функция не блокирует доступ к рисункам, созданным с помощью функции figure или рабочего стола MATLAB. Взаимодействие с окнами приложений, отличными от MATLAB, также не блокируется.

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

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

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

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

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

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

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

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

Нажатие кнопки минимизации, максимизации или восстановления, предоставляемой операционной системой, устанавливает WindowState соответственно. Нажатие Ctrl+F11 (Окна® и Linux®) или Ctrl+Command+F (Mac OS) переключает 'fullscreen' состояние. Установка этого свойства на закреплённом рисунке или в Online™ MATLAB не поддерживается.

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

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

расширить все

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

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

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

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

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

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

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

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

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

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

  • 'off' - Дочерние компоненты не изменяются в размере.

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

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

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

Графическое изображение

расширить все

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

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

MATLAB обращается к этим цветам по их номеру строки.

Карта прозрачности для содержимого осей, заданная как вектор значений между 0 и 1, включительно. Размер вектора может быть m-на-1 или 1 на 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-by- 16 матрица (для указателя на 16 пикселей) или как 32-by- 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. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState.

  • 'on' - Отобразите объект.

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

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

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

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

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

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

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

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

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

Current point, возвращенная как двухэлементный вектор. Вектор содержит (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. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState.

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

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

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

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

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

Общие коллбэки

расширить все

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

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

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

  • Вектор символов, содержащий допустимое выражение 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 обнаруживает все клавиши.

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

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

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

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

Только нажатие определенных клавиш (таких как Ctrl, Alt, Shift) не генерирует Character данные.

Modifier

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

Key

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

SourceОбъект, который имеет особое внимание, когда клавиша нажата.
EventName'KeyPress'

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

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

Key-release коллбэк, заданный в качестве одного из следующих значений

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

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

  • Вектор символов, содержащий допустимое выражение 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 свойство дочерних компонентов.

Примечание

The SizeChangedFcn коллбэк не выполняется, если не AutoResizeChildren свойство этого контейнера установлено в 'off'. В App Designer можно сделать SizeChangedFcn исполняемый файл путем установки контейнера и снятия флажка AutoResizeChildren на вкладке Inspector Component Browser.

The 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 key-press коллбэк, заданный как одно из следующих значений:

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

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

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

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

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

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

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

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

Только нажатие определенных клавиш (таких как Ctrl, Alt, Shift) не генерирует Character данные.

Modifier

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

Key

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

SourceОбъект, который имеет особое внимание, когда клавиша нажата.
EventName'KeyPress'

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

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

Window key-release callback, заданный как одно из следующих значений

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

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

  • Вектор символов, содержащий допустимое выражение 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. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения 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 команда может измениться при выполнении другого коллбэка.

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

  • Обратный коллбэк running - это актуальный на данный момент коллбэк.

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

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

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

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

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

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

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

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

Родитель/дети

расширить все

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

Родительский объект, возвращенный как корневой объект.

Дети Figure объект, возвращенный как пустой GraphicsPlaceholder или одномерный массив объектов компонента. Дочерние элементы могут быть любым компонентом, исключая другой Figure объект.

Вы не можете добавить или удалить дочерний компонент с помощью Children свойство. Используйте это свойство для просмотра списка дочерних элементов или для изменения порядка дочерних элементов. Порядок дочерних элементов в этом массиве отражает порядок "от первого до последнего" (порядок размещения) компонентов на экране.

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

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

Эта таблица описывает эффект установки каждого значения:

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

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

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

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

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

'callback'

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

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

'on'

The Figure указатель на объект всегда отображается.

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

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

расширить все

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

Пример: uifigure('Name','Results') устанавливает имя рисунка равным 'Results'.

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

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

Поддерживаемые форматы изображений включают JPEG, PNG, GIF и m-by- n-by-3 truecolor массив изображений. Дополнительные сведения о массивах изображений 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. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState.

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

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

Используйте целочисленный указатель, заданный как 'off' или 'on', или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа 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
Для просмотра документации необходимо авторизоваться на сайте