диалоговое окно

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

Синтаксис

d = dialog
d = dialog(Name,Value)

Описание

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, чтобы создать диалоговое окно с определенным размером, местоположением и заголовком, “Выбор Один”.

  • Вызовите функцию 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;
          % This code uses dot notation to get properties.
          % Dot notation runs in R2014b and later.
          % For R2014a and earlier:
          % idx = get(popup,'Value');
          % popup_items = get(popup,'String');
          choice = char(popup_items(idx,:));
       end
end

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

color = choosedialog

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

color =

Blue

Примечание

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

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

свернуть все

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

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

Перечисленные здесь свойства являются только подмножеством. Для полного списка смотрите Figure Properties.

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

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

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

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

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

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

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

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

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

Примечание

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

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

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

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

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

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

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

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

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

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

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

свернуть все

Диалоговое окно, возвращенное как объект 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