exponenta event banner

Использование менеджеров компоновки сетки

Менеджеры макета сетки предоставляют способ раскладки вашего приложения без необходимости задавать пиксельные позиции компонентов пользовательского интерфейса в Position векторы. Для приложений с изменяемым размером менеджеры макета сетки обеспечивают большую гибкость, чем поведение автоматического изменения размера в App Designer. Их также проще настроить, чем код SizeChangedFcn функции обратного вызова.

Добавление и настройка диспетчера компоновки сетки

В App Designer можно добавить диспетчер компоновки сетки к пустому приложению или к пустым компонентам контейнера в рисунке.

Чтобы использовать диспетчер компоновки сетки, перетащите компоновку сетки из библиотеки компонентов на холст. Можно также щелкнуть правой кнопкой мыши рисунок или контейнер и выбрать в контекстном меню команду «Применить макет сетки». Диспетчер макета сетки охватывает все окно приложения или контейнер, в который оно помещается. Он невидим, если не выполняется активная настройка на холсте App Designer.

Чтобы настроить диспетчер компоновки сетки, в представлении «Дизайн» поместите компоновку сетки в фокус щелчком мыши в области, в которую она была добавлена. Затем нажмите кнопку в левом верхнем углу диспетчера компоновки сетки или щелкните правой кнопкой мыши компоновку сетки и выберите «Настроить компоновку сетки». Затем выберите строку или столбец и в меню «Изменить размер конфигурации» выберите «Вписать», «Взвешенный» или «Фиксированный». Дополнительные сведения об этих параметрах см. в разделе Свойства GridLayout. Можно также добавлять или удалять строки и столбцы.

Преобразование компонентов из позиций на основе пикселов в Диспетчер компоновки сетки

Можно также преобразовать компоненты внутри фигуры или контейнера пользовательского интерфейса из пиксельного расположения в диспетчер компоновки сетки. При применении диспетчера компоновки сетки к фигуре пользовательского интерфейса или контейнеру, содержащему компоненты, компоненты добавляются в диспетчер компоновки сетки и их Position векторы заменяются на Layout.Row и Layout.Column значения, определяющие их расположение в сетке. Иерархия компонентов также обновляется в браузере компонентов.

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

Симптом или предупреждениеОбъяснениеПредлагаемые действия
Warning: Unable to set 'Position', 'InnerPosition', or 'OuterPosition' for components in 'GridLayout'.Вы не можете установить Position для компонентов в диспетчере компоновки сетки.Укажите расположение сетки для компонента, установив Layout свойство с соответствующим Row и Column значения.
Error using matlab.ui.container.GridLayout/set
There is no FontSize property on the GridLayout class.
Свойства, заданные для других компонентов контейнера, могут не поддерживаться в диспетчере компоновки сетки.Обновите код таким образом, чтобы он устанавливал свойства требуемого контейнера.
Контекстное меню, назначенное контейнеру, не открывается в запущенном приложении.При добавлении диспетчера компоновки сетки к контейнеру он охватывает весь контейнер. Это означает, что события щелчка происходят в сетке, а не в контейнере.Переназначить контекстное меню макету сетки.

Пример: Преобразование компонентов для использования диспетчера компоновки сетки вместо позиций на основе пикселей

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

  1. Откройте приложение в App Designer. В режиме «Дизайн» перетащите на фигуру диспетчер компоновки сетки.

  2. Щелкните правой кнопкой мыши диспетчер компоновки сетки, только что добавленный к рисунку, и выберите в контекстном меню команду «Настроить компоновку сетки».

  3. Поочередно выберите строки и столбцы сетки, содержащие раскрывающиеся меню и таблицу, и измените их конфигурацию на «Вписать». По завершении убедитесь, что на вкладке «Инспектор» обозревателя компонентов значения ColumnWidth равны 12.64x,1.89x,fit,fit,fit,fit и значения RowHeight: 1x,fit,1.93x,fit,3.07x,fit.

  4. Переключитесь в режим просмотра кода. Обновить каждую из DropDownValueChanged обратные вызовы, чтобы allchild функции устанавливают имя шрифта и размер шрифта для компонентов в app.GridLayout, вместо в app.UIFigure.

  5. Теперь запустите приложение, чтобы увидеть, как сетка адаптируется к компонентам по мере изменения их размеров.

См. также

Функции

Свойства