Figure Properties

Управляйте внешним видом и поведением окна рисунка

Свойства, перечисленные здесь, допустимы для фигур, используемых в GUIDE или фигурах, созданных с figure функция. Для фигур, созданных с uifigure функционируйте, смотрите UI Figure Properties.

Фигуры являются контейнерами для графических или компонентов пользовательского интерфейса. Полагайте, что свойства управляют внешним видом и поведением конкретного экземпляра фигуры. Чтобы изменить аспекты фигуры, измените значения свойств. Используйте запись через точку, чтобы запросить и установить свойства.

f = figure;
u = f.Units;
f.Units = 'inches';

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

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

Изобразите отображение панели меню в виде 'figure' или 'none'. MenuBar свойство позволяет вам отобразить или скрыть меню по умолчанию наверху окна рисунка. Задайте 'figure' отобразить панель меню. Задайте 'none' скрыть его.

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

Панели меню не кажутся в цифрах чей WindowStyle свойство установлено в 'Modal'. Если фигура, содержащая uimenu дочерние элементы, изменяется на 'Modal', дочерние элементы меню все еще существуют в Children свойство фигуры. Однако меню не отображаются в то время как WindowStyle установлен в 'Modal'.

Примечание

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

Изобразите отображение панели инструментов в виде одного из следующего:

  • 'auto' — Использует то же значение в качестве MenuBar свойство.

  • 'figure' — Отображения панели инструментов.

  • 'none' — Панель инструментов не отображается.

Это свойство влияет только на панель инструментов по умолчанию. Это не влияет на другие панели инструментов такой как, Панель инструментов Редактирования Панели инструментов или Графика Камеры. Выбор Figure Toolbar от фигуры меню View устанавливает это свойство на 'figure'.

Панели инструментов не кажутся в цифрах чей WindowStyle свойство установлено в 'Modal'. Если фигура, содержащая панель инструментов, изменяется на 'Modal', дочерние элементы панели инструментов все еще существуют в Children свойство фигуры. Однако панель инструментов не отображается в то время как WindowStyle установлен в 'Modal'.

Примечание

Если вы хотите скрыть панель инструментов по умолчанию, то установленный это свойство в 'none' когда вы создаете фигуру.

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

  • 'on' — Фигура может быть прикреплена в MATLAB® рабочий стол. Пункт меню Desktop> Dock Figure и кнопка Dock Figure в панели меню включены.

  • 'off' — MATLAB отключает пункт меню Desktop> Dock Figure и не отображает кнопку прикрепления фигуры.

    Вы не можете установить DockControls свойство к 'off' если WindowStyle установлен в 'docked'.

Установка DockControls свойство не поддерживается в MATLAB Online™.

Цвет фона в виде триплета RGB, шестнадцатеричного цветового кода, названия цвета или краткого названия. Если вы задаете 'none', цвет фона кажется черным на экране, но если вы распечатываете фигуру, фоновая печать, как будто окно рисунка прозрачно.

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

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

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

Кроме того, вы можете задать имена некоторых простых цветов. Эта таблица приводит опции именованного цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

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

Sample of the color red

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

Sample of the color green

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

Sample of the color blue

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

Sample of the color cyan

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

Sample of the color magenta

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

Sample of the color yellow

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

Sample of the color black

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

Sample of the color white

'none'Не применяетсяНе применяетсяНе применяетсяНет цвета

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

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

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]'#D95319'

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]'#EDB120'

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]'#7E2F8E'

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]'#77AC30'

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]'#4DBEEE'

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]'#A2142F'

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

Типы данных: double | char

Стиль окна в виде одного из следующего:

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

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

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

  • 'docked' — Фигура отображается в рабочем столе или окне документа. Когда WindowStyle свойство установлено в 'docked', вы не можете установить DockControls свойство к 'off'. 'docked' опция не поддерживается в MATLAB Online.

Примечание

Это некоторые важные характеристики WindowStyle свойство и некоторые рекомендуемые лучшие практики:

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

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

  • Вызов reset на фигуре не изменяет значение WindowStyle свойство.

Модальное поведение стиля окна

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

Установка WindowState свойство на прикрепленной фигуре или в MATLAB Online не поддерживается.

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

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

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

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

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

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

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

Все измерения находятся в модулях, заданных Units свойство.

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

В MATLAB Online, bottom и left элементы Position вектор проигнорирован.

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

Примечание

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

Единицы измерения в виде одного из значений из этой таблицы.

Модульное значениеОписание
'pixels' (значение по умолчанию)

'pixels'.

Начиная в R2015b, расстояния в пикселях независимы от вашего системного разрешения по системам Макинтоша и Windows:

  • В системах Windows пиксель составляет 1/72 дюйма.

  • В системах Macintosh пиксель составляет 1/72 дюйма.

В системах Linux размер пикселя определяется вашим системным разрешением.

'normalized'Эти модули нормированы относительно родительского контейнера. Нижний левый угол контейнера сопоставляет с (0,0) и верхний правый угол сопоставляет с (1,1).
'inches''inches'.
'centimeters''centimeters'.
'points''points'. Одна точка равняется 1/72-й из дюйма.
'characters'

Эти модули основаны на шрифте uicontrol по умолчанию графического корневого объекта:

  • Ширина символов = ширина буквы x.

  • Высота символа = расстояние между базовыми линиями двух строк текста.

Чтобы получить доступ к шрифту uicontrol по умолчанию, используйте get(groot,'defaultuicontrolFontName') или set(groot,'defaultuicontrolFontName').

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

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

Порядок, в котором вы задаете Units и Position свойства оказывают эти влияния:

  • Если вы задаете Units перед Position свойство, затем MATLAB устанавливает Position с помощью модулей вы задаете.

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

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

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

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

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

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

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

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

Все измерения находятся в модулях, заданных Units свойство.

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

Примечание

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

Это свойство не оказывает влияния на фигуры.

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

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

Графический вывод

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

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

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

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

Карты цветов влияют на рендеринг объектов, созданных с surface, image, и patch функции, но обычно не влияют на другие графические объекты.

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

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

Alphamaps влияют на рендеринг объектов, созданных с surface, image, и patch функции, но не влияют на другие графические объекты.

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

Директива по тому, как добавить следующий график в виде 'add', 'new'замена, или 'replacechildren'.

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

Значение свойстваЭффект
'new'

Создает новую фигуру и использует его в качестве текущей фигуры.

'add'

Добавляют новые графические объекты, не очищаясь или сбрасывая текущую фигуру.

'replacechildren'

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

Эквивалентный использованию clf команда.

'replace'

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

Эквивалентный использованию clf reset команда.

Рассмотрите использование newplot функционируйте, чтобы обработать NextPlot свойство. Для получения дополнительной информации смотрите оси NextPlot свойство и Готовит фигуры и Оси для Графиков.

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

  • 'opengl' opengl® средство отображения. Эта опция позволяет MATLAB получить доступ к аппаратному обеспечению машинной графики, если это доступно в вашей системе. Средство отображения OpenGL отображает объекты, отсортированные впереди к невыполненному заказу, как замечено на мониторе. Линии всегда чертят перед поверхностями когда в том же местоположении на плоскости монитора.

  • 'painters' — Средство отображения живописцев. Эта опция работает хорошо на оси в 2D представлении. В 2D, графических объектах видов средства отображения Живописцев согласно дочернему порядку (заданный порядок). В 3-D виды средства отображения Живописцев возражают впереди против невыполненного заказа. Однако это не может правильно чертить пересекающиеся многоугольники в 3-D.

Примечание

'zbuffer' опция была удалена. Используйте 'opengl' или 'painters' вместо этого.

Установка Renderer свойство не поддерживается в MATLAB Online.

Аппаратные и программные реализации OpenGL

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

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

MATLAB выдает предупреждение, если он не может найти применимую библиотеку OpenGL.

Программное обеспечение выбор OpenGL

Чтобы переключиться от оборудования до программного обеспечения OpenGL, сделайте следующее:

  • В системах Linux начните MATLAB с команды matlab -softwareopengl.

  • В системах Windows выполните команду opengl software в MATLAB или начинают MATLAB с команды matlab -softwareopengl.

  • В системах Macintosh не поддерживается программное обеспечение OpenGL.

Следующие версии программного обеспечения доступны:

  • В системах Linux MATLAB использует реализацию программного обеспечения OpenGL, который включен в распределение MATLAB.

  • На Windows OpenGL доступен как часть операционной системы. Если вы испытываете проблемы с OpenGL, свяжитесь со своим поставщиком графического драйвера, чтобы получить последнюю квалифицированную версию OpenGL.

  • В системах Macintosh программное обеспечение OpenGL не доступно.

Определение версии библиотеки OpenGL

Чтобы определить версию и поставщика библиотеки OpenGL, которой MATLAB пользуется в вашей системе, вызовите rendererinfo функция. Например, эта команда получает информацию для текущей системы координат и хранит ее в структуре под названием info.

info = rendererinfo(gca)

Эта структура также обеспечивает имя графического средства отображения в GraphicsRenderer поле . Например, если MATLAB использует, аппаратно ускорил OpenGL, поле возвращает 'OpenGL Hardware'. Если MATLAB использует программное обеспечение OpenGL, поле возвращает 'OpenGL Software'.

Потерянная связь XServer

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

В системе Linux также можно попытаться обновить драйвер OpenGL или начать MATLAB с программного обеспечения OpenGL с помощью этой команды:

 matlab -softwareopengl

Выбор средства отображения в виде:

  • 'auto' — MATLAB выбирает метод рендеринга для печати и отображения на экране на основе размера и сложности графических объектов на рисунке.

  • 'manual' — MATLAB использует средство отображения, заданное с Renderer свойство.

MATLAB устанавливает RendererMode свойство к 'manual' если вы явным образом устанавливаете Renderer свойство к 'painters' или 'opengl'.

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

Сглаживание уменьшает внешний вид зубчатых линий в графические оси. MATLAB применяет метод сглаживания к графические оси (и линейки осей) если GraphicsSmoothing установлен в 'on', и любое из этих условий верно:

  • Renderer свойство установлено в 'painters'.

  • Renderer свойство установлено в 'opengl' и ваша аппаратная карта поддерживает OpenGL.

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

Примечание

Графическое сглаживание не имеет никаких, влияют на тексте. MATLAB сглаживает текст независимо от значения GraphicsSmoothing свойство.

Установка GraphicsSmoothing свойство не поддерживается в MATLAB Online.

Печать и экспорт

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

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

  • left и bottom значения — Управление расстояние от левого нижнего угла страницы к левому нижнему углу фигуры. Эти значения проигнорированы при сохранении фигуры в формат нестраницы, такой как формат EPS или PNG.

  • width и height значения — Управление размер фигуры. Если значения ширины и высоты являются слишком большими, то фигура не может достигнуть заданного размера. Если фигура не достигает определенного размера, то любые компоненты пользовательского интерфейса на фигуре, такие как управление пользовательского интерфейса или таблица UI, не могут сохранить или распечатать как ожидалось.

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

Пример: figure('PaperPosition',[.25 .25 8 6]) установите размер фигуры и местоположение для печати к [.25 .25 8 6].

Директива, чтобы использовать отображенный размер фигуры при печати или сохранении в виде любого 'auto' или 'manual'.

  • 'auto' — Распечатанный или сохраненный размер фигуры совпадает с отображенным размером фигуры. width и height значения PaperPosition свойство, равное размер фигуры на отображении. left и bottom значения сосредотачивают фигуру. Если размер фигуры изменяется на отображении, PaperPosition свойство автоматически обновляется к соответствующему размеру и значениям местоположения.

  • 'manual' — Распечатанный или сохраненный размер фигуры не может совпадать с отображенным размером фигуры. Используйте эту опцию, если вы хотите распечатать или сохранить фигуру, использующую размер, который отличается от отображения, или если вы не хотите фигуры, сосредоточенной на печатной или сохраненной странице. Установите PaperPosition свойство к желаемому размеру и местоположению. Если размер фигуры изменяется на отображении, PaperPosition свойство автоматически не обновляется.

Чтобы сгенерировать выход, который имеет тот же размер и разрешение (DPI) как отображенная фигура, устанавливает PaperPositionMode свойство фигуры к 'auto' и сохраните фигуру, использующую print с -r0 опция. -r0 опция гарантирует, что выходное разрешение совпадает с разрешением дисплея. Если разрешения отличаются, то сгенерированный выходной размер совпадает с отображенным размером фигуры в измеренных модулях (дюймы, сантиметры, точки), но не в пикселях. Например, если разрешение дисплея является 100 DPI, то 4 5 фигура дюйма является 400 500 пикселями. Если выходное разрешение является 200 DPI, то печатная или сохраненная фигура одного размера в дюймах, но 800 1000 пикселях.

Примечание

Начиная в R2016a, значением по умолчанию является 'auto'. Ранее значением по умолчанию был 'manual'.

Чтобы изменить значение по умолчанию, используйте один из этих методов.

  • Установите настройку печати. Настройки печати сохраняются через сеансы работы с MATLAB. Можно установить настройку печати на любой 'auto' или 'manual', например:

    matlab.graphics.internal.setPrintPreferences('DefaultPaperPositionMode','manual')
    Чтобы запросить текущее значение настройки печати, используйте следующую команду. Если вы устанавливаете настройку, команда возвращает 'auto' или 'manual'. Если вы не установили настройку, команда возвращает 'unset'.
    matlab.graphics.internal.getPrintPreferences

  • Установите значение по умолчанию на корневом объекте. Эта опция влияет только на последние данные в текущем сеансе работы с MATLAB, например:

    set(groot,'defaultFigurePaperPositionMode','manual')

Пользовательский размер страницы при печати фигуры или сохранении его в разбитый на страницы формат (PDF и PostScript® форматы) в виде двухэлементного вектора из формы [width height]. В Соединенных Штатах значением по умолчанию является [8.5 11]. В Европе и Азии, значением по умолчанию является [21 29.7].

Примечание

Если вы сохраняете фигуру в файл, PaperSize свойство только влияет на PDF и форматы файлов PostScript. Другие форматы файлов игнорируют это свойство. Используйте PaperPosition свойство управлять размером сохраненной фигуры.

PaperUnits свойство определяет единицы измерения для PaperSize свойство. Вы не можете установить PaperSize свойство, если PaperUnits свойство установлено в 'normalized'. Попытка сделать так результаты по ошибке.

Определение PaperSize наборы свойств PaperType свойство к соответствующему типу, если вы существуете, или к 'custom' в противном случае.

Модули используются для PaperSize и PaperPositionВ виде одного из этих значений:

  • 'inches' — Значение в дюймах. Это - значение по умолчанию, когда локалью являются Соединенные Штаты.

  • 'normalized' — Нормированные единицы. Левый нижний угол страницы сопоставляет с (0,0) и правый верхний угол сопоставляет с (1,1).

  • 'centimeters' — Значение в сантиметрах. Это - значение по умолчанию, когда локалью является Европа или Азия.

  • 'points' — Значение в точках. Одна точка равняется 1/72 дюйма.

Примечание

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

Ориентация страницы при печати фигуры или сохранении его в разбитый на страницы формат (PDF и форматы PostScript) в виде одного из этих значений:

  • 'portrait' — Восток самое долгое измерение страницы вертикально.

  • 'landscape' — Восток самое долгое измерение страницы горизонтально.

Смотрите orient функция для получения дополнительной информации.

Примечание

При использовании File> Save As, только PDF и полностраничные форматы PS используют PaperOrientation свойство. Другие форматы игнорируют эти значения.

Стандартные размеры страницы при печати фигуры или сохранении его в разбитый на страницы формат (PDF и форматы PostScript) в виде одного из значений в этой таблице. Определение PaperType наборы свойств PaperSize свойство к соответствующему размеру страницы.

Значение

Размер страницы (Ширина x Высота)

'usletter'

8.5 11 в (значение по умолчанию в США)

'uslegal'

8.5 14 в

'tabloid'

11 17 в

'a0'

84.1 118.9 cm

'a1'

59.4 84.1 cm

'a2'

42 59.4 cm

'a3'

29.7 42 cm

'a4'

21 29.7 cm (значение по умолчанию в Европе и Азии)

'a5'

14.8 21 cm

'b0'

102.9 145.6 cm

'b1

72.8 102.8 cm

'b2'

51.4 72.8 cm

'b3'

36.4 51.4 cm

'b4'

25.7 36.4 cm

'b5'

18.2 25.7 cm

'arch-a'

9 12 в

'arch-b'

12 18 в

'arch-c'

18 24 в

'arch-d'

24 36 в

'arch-e'

36 48 в

'a'

8.5 11 в

'b'

11 17 в

'c'

17 22 в

'd'

22 34 в

'e'

34 43 в

'custom'

Пользовательский размер страницы. Определение нестандартного размера страницы с помощью PaperSize наборы свойств PaperPosition к этому значению.

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

  • 'on' — Измените фон фигуры и цвета фона осей белому. Текст и другие аспекты фигуры также могут изменить цвет, чтобы улучшить внешний вид сгенерированного выхода.

  • 'off' — Используйте те же цвета в качестве цветов на отображении. Чтобы изменить цвет фона фигуры на отображении, используйте Color свойство фигуры. Чтобы изменить цвет фона осей, используйте Color свойство осей.

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

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

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

Значение

Получившийся (системно-зависимый) символ

'arrow'

'ibeam'

'crosshair'

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

'topl' или 'botr'

'topr' или 'botl'

'circle'

'cross'

'fleur'

'left' или 'right'

'top' или 'bottom'

'hand'

Символ пользовательского указателя

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

Ограничения

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

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

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

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

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

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

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

Элемент (1,1) из матрицы соответствует пикселю в левом верхнем углу в указателе.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Нажатие на объект, чей HandleVisibility свойством является 'off' устанавливает CurrentObject свойство к пустому GraphicsPlaceholder массив. Чтобы постараться не возвращать пустой массив, когда пользователи кликнут по скрытому объекту, установите HitTest свойство скрытого объекта к 'off'.

Используйте gco команда как альтернатива для получения значения этого свойства.

Current point, возвращенная как двухэлементный вектор. Вектор содержит (x, y) координаты указателя мыши, измеренного от нижнего левого угла фигуры. Значения находятся в модулях, заданных Units свойство.

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

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

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

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

  • Вращайте колесико прокрутки в фигуре.

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

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

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

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

Примечание

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

Примечание

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

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

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

Значение

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

'normal'

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

'extend'

Любое следующее:

  • Shift - щелкните левой кнопкой мыши.

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

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

'alt'

Любое из следующего:

  • Control - щелкните левой кнопкой мыши.

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

'open'

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

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

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

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

Кнопка вниз коллбэк в виде одного из этих значений:

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

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

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

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

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

Используйте SelectionType свойство определить, нажал ли пользователь модифицирующие клавиши.

Функция создания компонентов, заданная в качестве одного из следующих значений:

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

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

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

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

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

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

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

Функция удаления компонента, заданная в качестве одного из следующих значений:

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

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

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

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

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

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

Коллбэки клавиатуры

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

Коллбэк нажатия клавиши в виде одного из этих значений:

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

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

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

Эта функция обратного вызова выполняется, когда пользователь нажимает клавишу, в то время как фигура или дочерний объект фокусируются. Если пользователь нажимает клавишу на UIControl или Table компонент, коллбэк не выполняется если Enable свойство установлено в 'off' или 'inactive'.

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

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

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

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

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

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

Modifier

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

Key

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

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

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

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

Коллбэк ключевого релиза в виде одного из этих значений

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

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

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

Эта функция обратного вызова выполняется, когда пользователь нажимает клавишу, в то время как фигура или дочерний объект фокусируются. Если пользователь отпускает клавишу на UIControl или Table компонент, коллбэк не выполняется если Enable свойство установлено в 'off' или 'inactive'.

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

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

Символ, который соответствует ключу или клавишам, которые отпускаются.

Определенные ключи или сочетания клавиш могут возвратить непечатные символы в этом свойстве.

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

Modifier

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

Key

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

SourceОбъект, который фокусируется, когда клавиша отпускается.
EventName'KeyRelease'

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

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

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

Закройте коллбэк запроса в виде одного из этих значений:

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

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

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

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

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

Основной механизм:

  1. Пользователь выходит close или close all команда из командной строки, закрывает фигуру в компьютерном меню менеджера окон или закрывает фигуру путем выхода из MATLAB.

  2. Операция закрытия выполняет функцию, определяемую фигурой CloseRequestFcn свойство. Значением по умолчанию является 'closereq'. 'closereq' операция безусловно удаляет фигуру, уничтожая окно.

Если близкие вызовы функции запроса delete или close функция, MATLAB никогда не закрывает фигуру. (Можно вызвать delete(f) из командной строки, если вы создали окно с неразрушающей близкой функцией запроса.)

Пример: код CloseRequestFcn отобразить диалоговое окно

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

function my_closereq(src,event)
% Close request function 
% to display a question dialog box 
selection = questdlg('Close This Figure?', ...
    'Close Request Function', ...
    'Yes','No','Yes'); 
switch selection 
    case 'Yes'
        delete(gcf)
    case 'No'
        return 
end
end

Теперь создайте фигуру, задающую my_closereq для CloseRequestFcn. Заметьте, что указатель на функцию явным образом не относится ни к каким входным параметрам, но объявление функции включает два входных параметра. MATLAB передает эти аргументы автоматически, когда коллбэк выполняется. Первый аргумент является компонентом пользовательского интерфейса, который инициировал коллбэк, и второй аргумент предоставляет данные о событиях функции обратного вызова.

figure('CloseRequestFcn',@my_closereq)

Закройте окно рисунка и отображения диалогового окна вопроса.

Размер изменил коллбэк в виде одного из этих значений:

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

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

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

Задайте этот коллбэк, чтобы настроить размещение приложения когда размер этого контейнера изменения (e.g., когда пользователь изменяет размер окна).

SizeChangedFcn коллбэк выполняется когда:

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

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

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

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

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

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

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

Совет

Как легкая альтернатива определению SizeChangedFcn коллбэк, можно установить Units свойство всех объектов вы вставляете контейнер к 'normalized'. Выполнение так заставляет те компоненты масштабироваться пропорционально с контейнером.

Пример: Поле редактирования с постоянной высотой

Используйте SizeChangedFcn коллбэк, чтобы ограничить размер компонентов пользовательского интерфейса. Например, следующий код создает пользовательский интерфейс, который имеет поле редактирования наверху окна. Когда пользователь изменяет размер окна, sbar функция ограничивает свою высоту 20 пикселями. Функция также устанавливает ширину поля редактирования на ширину фигуры. Используйте запись через точку, чтобы установить и запросить свойства.

function myui
f = figure('Visible','off','SizeChangedFcn',@sbar); 
u = uicontrol('Style','edit','Tag','StatusBar');
f.Visible = 'on';

    function sbar(src,event)
       old_units = src.Units;
       src.Units = 'pixels';
       sbar_units = u.Units;
       u.Units = 'pixels';
       fpos = src.Position;
       upos = [1 fpos(4) - 20 fpos(3) 20];
       u.Position = upos;
       u.Units = sbar_units;
       src.Units = old_units;
       u.Visible = 'on';
    end
end

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

Кнопка Window вниз коллбэк в виде одного из этих значений:

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

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

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

Этот коллбэк выполняется, когда пользователь щелкает где угодно на рисунке или одном из его дочерних объектов. Если пользователь нажимает UIControl или Table компонент, коллбэк не выполняется если Enable свойство установлено в 'off' или 'inactive'.

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

Коллбэк движения кнопки Window в виде одного из этих значений:

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

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

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

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

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

Пример: простое приложение рисунка

В этом примере показано, как создать приложение рисунка, которое использует WindowButtonMotionFcn 'callback'. Скопируйте и вставьте следующий код в редактор и запустите его. Затем используйте мышь, чтобы чертить набор связанных линейных сегментов:

  • Перетащите в осях, чтобы чертить первый линейный сегмент.

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

  • Переместите мышь, чтобы добавить другой линейный сегмент.

  • Щелкните правой кнопкой, чтобы закончить режим рисунка.

function drawing_app
figure('WindowButtonDownFcn',@wbdcb)
ah = axes('SortMethod','childorder');
axis ([1 10 1 10])
title('Click and drag')
   function wbdcb(src,event)
     seltype = src.SelectionType;
     if strcmp(seltype,'normal')
        src.Pointer = 'circle';
        cp = ah.CurrentPoint;
        xinit = cp(1,1);
        yinit = cp(1,2);
        hl = line('XData',xinit,'YData',yinit,...
        'Marker','p','color','b');
        src.WindowButtonMotionFcn = @wbmcb;
        src.WindowButtonUpFcn = @wbucb;
     end    
 
        function wbmcb(src,event)
           cp = ah.CurrentPoint;
           xdat = [xinit,cp(1,1)];
           ydat = [yinit,cp(1,2)];
           hl.XData = xdat;
           hl.YData = ydat;
           drawnow
        end
   
        function wbucb(src,event)
           last_seltype = src.SelectionType;
           if strcmp(last_seltype,'alt')
              src.Pointer = 'arrow';
              src.WindowButtonMotionFcn = '';
              src.WindowButtonUpFcn = '';
           else
              return
           end
        end
  end
end

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

Коллбэк кнопки окна в виде одного из этих значений:

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

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

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

Этот коллбэк выполняется, когда пользователь отпускает кнопку мыши где угодно на рисунке или одном из ее дочерних объектов. Если пользователь отпускает кнопку мыши на UIControl или Table компонент, коллбэк не выполняется если Enable свойство установлено в 'off' или 'inactive'.

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

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

Коллбэк нажатия клавиши окна в виде одного из этих значений

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

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

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

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

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

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

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

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

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

Modifier

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

Key

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

SourceОбъект, который фокусируется, когда клавиша отпускается.
EventName'KeyRelease'

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

Коллбэк ключевого релиза окна в виде одного из этих значений

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

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

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

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

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

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

Символ, который соответствует ключу или клавишам, которые отпускаются.

Определенные ключи или сочетания клавиш могут возвратить непечатные символы в этом свойстве.

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

Modifier

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

Key

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

SourceОбъект, который фокусируется, когда клавиша отпускается.
EventName'KeyRelease'

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

Коллбэк колесика прокрутки окна в виде одного из этих значений:

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

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

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

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

Выполнение этого коллбэка не оказывает влияния на CurrentObject и SelectionType свойства.

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

Свойство

Содержимое

VerticalScrollCount

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

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

VerticalScrollAmount

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

Source

Объект, который выполняет коллбэк.

EventName'WindowScrollWheel'

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

Пример: приложение для изменения x - пределы по осям

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

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

   function figScroll(src,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;
         x = [0:.1:xd(end)-inc+.1]; % Don't let xd = 0;
         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

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

Измените размер функции обратного вызова в виде одного из этих значений:

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

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

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

Примечание

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

Типы данных: function_handle | cell | char

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

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

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

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

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

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

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

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

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

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

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

Примечание

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

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

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

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

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

Смотрите Выполнение обратного вызова Прерывания для примера, который показывает как Interruptible и BusyAction свойства влияют на поведение программы.

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

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

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

BusyAction свойство источника прерывания обратного вызова определяет, как MATLAB обрабатывает свое выполнение. BusyAction свойство имеет эти значения:

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

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

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

  • on — Прерывание происходит на следующем этапе, где MATLAB обрабатывает очередь. Это значение по умолчанию.

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

Смотрите Выполнение обратного вызова Прерывания для примера, который показывает как BusyAction и Interruptible свойства влияют на поведение программы.

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

  • 'on' — Устанавливает текущий объект на Figure когда пользователь кликает по компоненту в запущенном приложении. Оба CurrentObject свойство Figure и gco функциональный возврат Figure как текущий объект.

  • 'off' — Текущий объект не обновляется, когда пользователь кликает по фигуре в запущенном приложении.

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

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

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

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

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

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

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

Дочерние элементы Figure, возвращенный как пустой GraphicsPlaceholder или 1D массив объектов.

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

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

Объекты с HandleVisibility набор свойств к 'off' не перечислены в Children свойство.

Видимость фигуры возражает в виде 'on''callback', или 'off'.

Это свойство определяет, является ли фигура в его родительском элементе (корень) списком дочерних элементов. HandleVisibility полезно для предотвращения пользователей командной строки от случайного вовлечения или удаления фигуры, которая содержит только компоненты пользовательского интерфейса (такие как диалоговое окно).

Если объект не находится в своем родительском списке дочерних элементов, функции, которые находят, объекты путем поиска иерархии объектов или запроса свойств не могут возвратить тот объект. Такие функции включают get, findobj, gca, gcf, gco, newplot, cla, clf, и close.

Когда HandleVisibility значение свойства ограничивается с помощью 'callback' или 'off' настройки, объект не появляется в родительском объекте Children свойство, фигуры не появляются в корневом CurrentFigure свойство, объекты не появляются в корневом CallbackObject свойство или на рисунке CurrentObject свойство и оси не появляются в их родительском CurrentAxes свойство.

Установите корневой ShowHiddenHandles свойство к 'on' сделать все объекты видимыми, независимо от их HandleVisibility настройки (это не влияет на значения HandleVisibility свойства.

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

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

Имя фигуры в виде вектора символов или строкового скаляра.

Пример: figure('Name','Results') определяет имя фигуры к 'Results'.

По умолчанию именем является 'Figure n', где n целое число. Когда вы задаете Name свойство, заголовок фигуры становится 'Figure n: name'. Если вы хотите только Name значение, чтобы появиться, установите IntegerHandle или NumberTitle к 'off'.

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

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

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

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

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

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

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

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

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

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

Показать номер фигуры в строке заголовка, обоих IntegerHandle и NumberTitle должен быть установлен в 'on'.

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

Пример: figure('FileName','myfile.fig') устанавливает имя файла на myfile.fig.

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

Тип объекта Figure, возвращенного как 'figure'. Используйте это свойство найти все объекты данного типа в иерархии графического вывода.

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

Пользовательские данные в виде любого массива. Определение UserData может быть полезно для обмена данными в рамках приложений. Смотрите Осуществляют обмен данными Среди Коллбэков для получения дополнительной информации.

Вопросы совместимости

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

Не рекомендуемый запуск в R2020a

Представлено до R2006a