Модальное диалоговое окно в GUIDE

Примечание

Среда GUIDE будет удалена в будущем релизе. После того, как GUIDE удален, существующие приложения GUIDE продолжат запускаться в MATLAB®, но они не будут доступны для редактирования в GUIDE.

Чтобы продолжить редактировать существующее приложение GUIDE, см. Стратегии Миграции GUIDE информации о том, как помочь обеспечить совместимость приложения с будущими релизами MATLAB. Чтобы создать новые приложения, используйте App Designer вместо этого.

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

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

  1. На вкладке Home, в разделе Environment, нажимают Preferences> GUIDE> Show names in component palette.

  2. В Командном окне введите guide.

  3. В диалоговом окне GUIDE Quick Start выберите Modal Question Dialog. Затем нажмите OK.

  4. Щелкните правой кнопкой по тексту, “Вы хотите создать диалоговое окно вопроса?”

    Затем выберите Property Inspector из контекстного меню.

  5. В Property Inspector выберите String свойство. Затем измените существующее значение в: Are you sure you want to close?

    Затем нажмите Enter.

  6. Выберите File> Save As.

  7. В диалоговом окне Save As, в поле File name, modaldlg.fig типа.

Создайте программу, которая открывает диалоговое окно

Создайте отдельный пользовательский интерфейс, содержащий кнопку Close:

  1. В то время как все еще в GUIDE, выберите File> New.

  2. В диалоговом окне GUIDE Quick Start выберите Blank GUI (Default). Затем нажмите OK.

  3. От палитры элементов слева, перетащите кнопку в область размещения.

  4. Щелкните правой кнопкой по кнопке и выберите Property Inspector.

  5. В Property Inspector выберите String свойство. Затем измените существующее значение в Close. Затем нажмите Enter.

  6. В меню File выберите Save.

  7. В диалоговом окне Save, в поле Имени файла, closedlg.fig типа. Затем нажмите Save.

    Файл кода, closedlg.m, открывается в Редакторе.

    На вкладке Editor, в разделе Navigate, нажимают Go To, и затем выбирают pushbutton1_Callback.

    Затем найдите следующий сгенерированный код в Редакторе:

    % --- Executes on button press in pushbutton1.
    function pushbutton1_Callback(hObject, eventdata, handles)
    % hObject    handle to close_pushbutton (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
  8. Добавьте следующий код сразу после комментария, который начинается с % handles....

    % Get the current position from the handles structure
    % to pass to the modal dialog.
    pos_size = get(handles.figure1,'Position');
    
    % Call modaldlg with the argument 'Position'.
    user_response = modaldlg('Title','Confirm Close');
    switch user_response
    case 'No'
    	% take no action
    case 'Yes'
    	% Prepare to close application window
    	delete(handles.figure1)
    end

    Когда пользователь нажимает кнопку Close в closedlg окне, pushbutton1_Callback функция выполняет эту команду:

    user_response = modaldlg('Title','Confirm Close');
    Вспомните что modaldlg функция закодирована в другом программном файле, modaldlg.m. Эта функция отображает второе окно: диалоговое окно Confirm Close. Возвращаемый аргумент, user_response, выбор пользователя от того диалогового окна.

    switch команда решает, закрыть ли первое окно (modaldlg) на основе выбора пользователя.

  9. Сохраните свой код путем нажатия Save в редакторе Тулстрипе.

Выполнение программы

  1. В Командном окне выполните команду, closedlg.

  2. MATLAB отображает closedlg окно. Кликните по кнопке Close, чтобы выполнить pushbutton1_Callbackclosedlg.m). Эта функция вызывает modaldlg отобразить диалоговое окно Confirm Close.

  3. Нажмите одну из кнопок в диалоговом окне Confirm Close. Когда вы нажимаете одну из кнопок, modaldlg.m закрывает диалоговое окно Confirm Close и возвращает ваш выбор в функцию вызова (pushbutton1_Callback). Затем switch команда в этой функции решает, закрыть ли остающееся открытое окно.

Похожие темы