dialog

Создайте пустое диалоговое окно modal

Описание

d = dialog создает пустое диалоговое окно и возвращает d, а Figure объект. Используйте uicontrol функция для добавления элементов управления пользовательского интерфейса в диалоговое окно.

пример

d = dialog(Name,Value) задает одно или несколько Figure имена свойства и соответствующие значения. Используйте этот синтаксис для переопределения свойств по умолчанию.

Примеры

свернуть все

Используйте uicontrol функция для добавления элементов управления пользовательского интерфейса в диалоговое окно. Например, создайте программный файл с именем mydialog.m отображает диалоговое окно, содержащее текст и кнопку.

function mydialog
    d = dialog('Position',[300 300 250 150],'Name','My Dialog');

    txt = uicontrol('Parent',d,...
               'Style','text',...
               'Position',[20 80 210 40],...
               'String','Click the close button when you''re done.');

    btn = uicontrol('Parent',d,...
               'Position',[85 20 70 25],...
               'String','Close',...
               'Callback','delete(gcf)');
end

Далее запустите mydialog функция из Командного окна.

mydialog

Используйте uiwait функция для возврата выхода на основе выбора пользователем диалогового окна. Например, создайте программный файл с именем choosedialog.m для выполнения следующих задач:

  • Вызовите dialog функция для создания диалогового окна с заданным размером, местоположением и заголовком «Select One».

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

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

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

function choice = choosedialog

    d = dialog('Position',[300 300 250 150],'Name','Select One');
    txt = uicontrol('Parent',d,...
           'Style','text',...
           'Position',[20 80 210 40],...
           'String','Select a color');
       
    popup = uicontrol('Parent',d,...
           'Style','popup',...
           'Position',[75 70 100 25],...
           'String',{'Red';'Green';'Blue'},...
           'Callback',@popup_callback);
       
    btn = uicontrol('Parent',d,...
           'Position',[89 20 70 25],...
           'String','Close',...
           'Callback','delete(gcf)');
       
    choice = 'Red';
       
    % Wait for d to close before running to completion
    uiwait(d);
   
       function popup_callback(popup,event)
          idx = popup.Value;
          popup_items = popup.String;
          choice = char(popup_items(idx,:));
       end
end

Запустите choosedialog функция из Командного окна. Затем выберите цвет в диалоговом окне.

color = choosedialog

choosedialog возвращает последний выбранный цвет при закрытии диалогового окна.

color =

Blue

Примечание

uiwait функция блокирует MATLAB® поток. Хотя uiwait хорошо работает в простом модальном диалоге, не рекомендуется использовать в более сложных приложениях.

Входные параметры

свернуть все

Аргументы в виде пар имя-значение

Пример: 'WindowStyle','normal' устанавливает WindowStyle свойство к 'normal'.

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

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

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

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

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

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

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

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

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

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

Примечание

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

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

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

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

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

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

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

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

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

  • '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', меню отображения.

Выходные аргументы

свернуть все

Диалоговое окно, возвращенное как Figure объект с набором значений этих свойств.

СвойствоЗначение
ButtonDownFcn'if isempty(allchild(gcbf)), close(gcbf), end'
Colormap[]
DockControls'off'
HandleVisibility'callback'
IntegerHandle'off'
InvertHardcopy'off'
MenuBar'none'
Number[]
NumberTitle'off'
PaperPositionMode'auto'
Resize'off'
WindowStyle'modal'

См. также

Функции

Свойства

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