exponenta event banner

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];

Создайте два окна фигур пользовательского интерфейса. Блокирование взаимодействий на рис. 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 свойство во время создания или когда фигура невидима.

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

Когда WindowStyle имеет значение 'modal', окно фигуры пользовательского интерфейса блокирует взаимодействие клавиатуры и мыши в окне фигуры пользовательского интерфейса, которое было создано до него и имеет 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 функция не блокирует доступ к фигурам, созданным с помощью функции фигуры или рабочего стола MATLAB. Взаимодействие с окнами приложений, отличными от MATLAB, также не блокируется.

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

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

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

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

Пример: uifigure('Name','Results') задает имя фигуры как 'Results'.

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

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

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

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

Ограничения

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

Совет

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

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

Представлен в R2016a