uifigure

Создайте рисунок для разработки приложений

Описание

пример

fig = uifigure создает рисунок для создания пользовательского интерфейса и возвращает Figure объект. Это тип рисунка, которую использует App Designer.

пример

fig = uifigure(Name,Value) задает свойства рисунка с помощью одной или нескольких Name,Value аргументы в виде пар.

Примеры

свернуть все

fig = uifigure;

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

fig = uifigure('Name','Plotted Results');

Получите местоположение, ширину и высоту рисунка.

p = fig.Position
ans =

   680   678   560   420

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

fig = uifigure;

Получите местоположение, ширину и высоту рисунка.

fig.Position
ans =

   681   559   560   420

Это означает, что окно рисунка расположено на 681 пиксель справа и на 559 пикселей выше нижнего левого угла первичного отображения и имеет ширину 560 пикселей и высоту 420 пикселей.

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

fig.Position(3:4) = [280 210];

Создайте два окон UI Figure. Блокируйте взаимодействия на фигуре 1 путем определения 'modal' как WindowStyle значение свойства для фигуры 2. Заметьте, что вы не можете взаимодействовать с фигурой 1, пока фигура 2 не закроется.

fig1 = uifigure('Name','Figure 1');
fig1.Position = [500 500 370 270];

fig2 = uifigure('Name','Figure 2');
fig2.Position = [540 450 370 270];
fig2.WindowStyle = 'modal';

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

Скопируйте и вставьте этот код в MATLAB® Редактор, а затем запустите closeFig.

function closeFig

fig = uifigure('Position',[100 100 425 275]);
fig.CloseRequestFcn = @(fig,event)my_closereq(fig);

    function my_closereq(fig,selection)
        
        selection = uiconfirm(fig,'Close the figure window?',...
            'Confirmation');
          
        switch selection
            case 'OK'
                delete(fig)
                
            case 'Cancel'
                return
        end
        
    end

end

Нажмите кнопку закрытия рисунка. Откроется диалоговое окно подтверждения (Confirmation).

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

Этот программный файл, называемый setMousePointer.m, показывает, как:

  • Создайте фигуру пользовательского интерфейса, которая выполняет пользовательский код при перемещении мыши по кнопке. Для этого используйте @ оператор, чтобы назначить mouseMoved указатель на функцию в WindowButtonMotionFcn свойство рисунка.

  • Создайте кнопку и укажите ее координаты и метку.

  • Создайте функцию обратного вызова mouseMoved с пользовательским кодом, который необходимо выполнить при перемещении мыши по кнопке. В функции запросите CurrentPoint свойство для определения координат указателя мыши. Установите Pointer свойство к 'hand' если координаты указателя находятся в пределах координат кнопки.

Выполняйте setMousePointer. Затем наведите мышь на кнопку, чтобы увидеть изменение символа указателя мыши.

function setMousePointer
    fig = uifigure('Position',[500 500 375 275]);
    fig.WindowButtonMotionFcn = @mouseMoved;

    btn = uibutton(fig);
    btnX = 50;
    btnY = 50;
    btnWidth = 100;
    btnHeight = 22;
    btn.Position = [btnX btnY btnWidth btnHeight];
    btn.Text = 'Submit Changes';

      function mouseMoved(src,event)
          mousePos = fig.CurrentPoint;

          if  (mousePos(1) >= btnX) && (mousePos(1) <= btnX + btnWidth) ...
                        && (mousePos(2) >= btnY) && (mousePos(2) <= btnY + btnHeight)

              fig.Pointer = 'hand';
          else

              fig.Pointer = 'arrow';
          end

      end

end

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

свернуть все

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

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'Name','My App' задает My App как заголовок фигуры пользовательского интерфейса.

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

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

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

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

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

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

Примечание

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

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

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

Фигура пользовательского интерфейса Modal

Когда WindowStyle установлено в 'modal', окно UI Figure блокирует взаимодействия клавиатуры и мыши в окно UI Figure, которая была создана до него и имеет свои Visible значение свойства установлено в 'on'. Например, в этом примере фиг.3 является модальной относительно фиг.2, а фиг.2 является модальной относительно фиг.1.

fig1 = uifigure('Name','Figure 1');
fig1.WindowStyle = 'modal';

fig2 = uifigure('Name','Figure 2');
fig2.WindowStyle = 'modal';

fig3 = uifigure('Name','Figure 3');
fig3.WindowStyle = 'modal';
Иерархия модальности не сохраняется, если существует комбинация модальных и нормальных рисунков в иерархии рисунков.

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

Типирование Ctrl+C, когда модальный рисунок имеет особое внимание, заставляет эту фигуру вернуться к 'normal' WindowStyle настройка свойств. Это позволяет пользователю вводить текст в командной строке.

Фигуры пользовательского интерфейса со WindowStyle значение свойства установлено в 'modal' и Visible значение свойства установлено в 'off' не вести себя модально, пока MATLAB не сделает их видимыми. Поэтому можно скрыть модальное окно для последующего повторного использования, вместо того, чтобы уничтожать его.

Модальные рисунки не отображают дочерние элементы меню, встроенные меню или панели инструментов. Но не является ошибкой создавать меню в модальном рисунке или изменять WindowStyle установка значения свойства 'modal' на рисунке с дочерними элементами меню. The Menu объекты существуют, и рисунок сохраняет их. Если вы сбрасываете фигуру пользовательского интерфейса WindowStyle свойство к 'normal', меню отображения.

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

Пример: uifigure('Name','Results') устанавливает имя рисунка равным 'Results'.

В App Designer значение по умолчанию Name свойство 'MATLAB App'.

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

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

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

Ограничения

  • В настоящее время вы не можете пройти Figure объект, созданный с помощью uifigure функцию в print функция. Если вы пытаетесь сделать это, MATLAB выдает ошибку. Для получения дополнительной информации см. раздел «Отображение графики в App Designer».

Совет

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

    set(groot,'DefaultFigureColormap',summer)
    Чтобы восстановить свойство к его исходному MATLAB по умолчанию, используйте 'remove' ключевое слово.
    set(groot,'DefaultFigureColormap','remove')
    Дополнительные сведения о настройке значений по умолчанию см. в разделе Значения свойств по умолчанию.

Введенный в R2016a