Figure Properties

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

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

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

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

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

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

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

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

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

Примечание

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

Отображение панели инструментов фигуры, заданное как одно из следующего:

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

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

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

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

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

Примечание

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

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

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

  • 'off' - MATLAB отключает элемент меню Desktop > Dock Figure и не отображает кнопку figure dock.

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

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

Цвет фона, заданный как триплет 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'

'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'

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

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

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

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

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

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

Примечание

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

  • Когда вы создаете окна пользовательского интерфейса, всегда задайте 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' на рисунке с дочерними элементами меню. The Menu объекты существуют, и рисунок сохраняет их. Если вы сбросили рисунок WindowStyle свойство к 'normal', меню отображения.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примечание

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

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

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

Пиксели.

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

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

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

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

'normalized'Эти модули измерения нормированы относительно родительского контейнера. Нижний левый угол контейнера сопоставлен с (0,0) и правый верхний угол преобразуется в (1,1).
'inches'Дюймы.
'centimeters'Сантиметры.
'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Расстояние от левого края первичного отображения до внешнего левого края окна рисунка. Это значение может быть отрицательным для систем, которые имеют более одного монитора.

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

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

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

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

Примечание

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

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

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

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

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

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

Цветовая карта для содержимого осей рисунка, заданная как m-by- 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 обращается к альфа- значениям по их индексу в массиве. Альфа-карты могут быть любой длины.

Альфа-карты влияют на визуализацию объектов, созданных с помощью surface, image, и patch функций, но не влияет на другие графические объекты.

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

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

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

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

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

'add'

Добавление новых графических объектов без очистки или сброса текущей фигуры.

'replacechildren'

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

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

'replace'

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

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

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

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

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

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

Примечание

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

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

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

OpenGL доступна на всех компьютерах, которые запускают MATLAB, так как в MATLAB встроена версия программного обеспечения OpenGL. Однако, если у вас есть графическое оборудование, поддерживающее аппаратно ускоренную версию 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 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState.

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

  • The Renderer для свойства задано значение 'painters'.

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

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

Примечание

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

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

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

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

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

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

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

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

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

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

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

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

Чтобы сгенерировать выход, который имеет тот же размер и разрешение (DPI), что и отображаемый рисунок, установите PaperPositionMode свойство рисунка, чтобы 'auto' и сохраните рисунок используя print с -r0 опция. The -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 свойство для управления размером сохранённого рисунка.

The 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 см

'a1'

59,4 на 84,1 см

'a2'

42 на 59,4 см

'a3'

29,7 на 42 см

'a4'

21 на 29,7 см (дефолт в Европе и Азии)

'a5'

14,8 на 21 см

'b0'

102,9-на-145,6 см

'b1

72,8-на-102,8 см

'b2'

51,4 на 72,8 см

'b3'

36,4 на 51,4 см

'b4'

25,7 на 36,4 см

'b5'

18,2 на 25,7 см

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

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

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

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

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

The 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 коллбэк. Если вы не задаете CreateFcn свойство, затем MATLAB выполняет функцию создания по умолчанию.

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

Установка CreateFcn свойство существующего объекта компонента не имеет эффекта.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Modifier

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

Key

Нажата клавиша, обозначенная строчной меткой на клавише или описательным словом, таким как 'space'.

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

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

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

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

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

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

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

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

The 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 функция безоговорочно удаляет текущую фигуру, уничтожая окно. The closereq функция использует тот факт, что close команда делает каждый рисунок заданной как аргумент текущую фигуру перед вызовом ее соответствующей функции запроса закрытия.

The closereq функция чтит ShowHiddenHandles настройка свойства во время удаления рисунка и не удаляет скрытые рисунки.

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

Пример: Диалоговое окно Code CloseRequestFcn для отображения

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

function my_closereq(src,callbackdata)
% 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:

figure('CloseRequestFcn',@my_closereq)

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

Размер измененного коллбэка, заданный как одно из следующих значений:

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

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

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

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

The SizeChangedFcn коллбэк выполняется в следующих случаях:

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

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

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

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

  • Рассмотрите задержку отображения этого контейнера до тех пор, пока все переменные, которые 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,callbackdata)
       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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

function drawing_app
figure('WindowButtonDownFcn',@wbdcb)
ah = axes('SortMethod','childorder');
axis ([1 10 1 10])
title('Click and drag')
   function wbdcb(src,callbackdata)
     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,callbackdata)
           cp = ah.CurrentPoint;
           xdat = [xinit,cp(1,1)];
           ydat = [yinit,cp(1,2)];
           hl.XData = xdat;
           hl.YData = ydat;
           drawnow
        end
   
        function wbucb(src,callbackdata)
           last_seltype = src.SelectionType;
           if strcmp(last_seltype,'alt')
              src.Pointer = 'arrow';
              src.WindowButtonMotionFcn = '';
              src.WindowButtonUpFcn = '';
           else
              return
           end
        end
  end
end

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Modifier

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

Key

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

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

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

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

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

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

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

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

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

The 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,callbackdata)
      if callbackdata.VerticalScrollCount > 0 
         xd = h.XData;
         inc = xd(end)/20;
         x = [0:.1:xd(end)+inc];
         re_eval(x)
      elseif callbackdata.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

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

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

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

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

Примечание

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

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

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

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

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

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

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

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

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

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

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

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

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

Примечание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Родитель/ребенок

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

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

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

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

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

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

Используйте целочисленный указатель, заданный как 'on' или 'off', или как числовое или логическое 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'.

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

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

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

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

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

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

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

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

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

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