Создать диспетчер компоновки сетки
создает диспетчер компоновки сетки для приложения. Он размещает компоненты пользовательского интерфейса вдоль строк и столбцов невидимой сетки, охватывающей всю фигуру или контейнер внутри фигуры. Эта команда создает расположение сетки 2 на 2 в новом числе и возвращается g = uigridlayoutGridLayout объект. MATLAB ® вызывает uifigure для создания фигуры. Используйте диспетчер компоновки сетки, если не требуется позиционировать компоненты, задав значения пикселов в Position векторы.
Если добавить компоненты в диспетчер компоновки сетки, но не указать Layout свойства компонентов, затем диспетчер компоновки сетки добавляет компоненты слева направо и сверху вниз.
определяет g = uigridlayout(___,Name,Value)GridLayout значения свойств, использующие один или несколько аргументов пары имя-значение. Укажите аргументы пары имя-значение после всех других аргументов в любом из предыдущих синтаксисов.
Создайте фигуру и сетку. Затем настройте сетку путем задания высоты строк и ширины столбцов. В этом случае настройте сетку 3 на 2, в которой две верхние строки зафиксированы на 22 пикселях, в то время как нижняя строка имеет переменную высоту. Задайте ширину левого столбца равной 150 пикселям, а правого столбца - переменную ширину. Сетка заполняет всю фигуру, но поскольку сетка невидима, она кажется пустой.
fig = uifigure('Position',[100 100 440 320]); g = uigridlayout(fig); g.RowHeight = {22,22,'1x'}; g.ColumnWidth = {150,'1x'};

Добавьте в сетку два раскрывающихся списка, список и компонент осей. Если не указать расположение строк или столбцов для Layout свойства компонентов по умолчанию заполняют сетку слева направо и сверху вниз. В этом случае переместите второй раскрывающийся список (dd2) и поле списка (chanlist) к определенным строкам и столбцам путем установки Layout собственность.
% Device drop-down dd1 = uidropdown(g); dd1.Items = {'Select a device'}; % Range drop-down dd2 = uidropdown(g); dd2.Items = {'Select a range'}; dd2.Layout.Row = 2; dd2.Layout.Column = 1; % List box chanlist = uilistbox(g); chanlist.Items = {'Channel 1','Channel 2','Channel 3'}; chanlist.Layout.Row = 3; chanlist.Layout.Column = 1; % Axes ax = uiaxes(g);

Задайте оси для пролета строк с 1 по 3, заполняя вертикальное пространство.
ax.Layout.Row = [1 3];

При изменении размера фигуры оси растут и сжимаются, заполняя доступное пространство, которое не используется в левом столбце. Компоненты на левой стороне остаются фиксированными, поскольку этот столбец определен как 150 пикселы в ширину.

При назначении различных весов столбцам переменной ширины ширина каждого столбца пропорциональна весу. Строки переменной высоты распределяют пространство одинаково.
Создайте фигуру и сетку 2 на 2. Затем настройте высоты строк и ширины столбцов. В этом случае верхняя строка фиксируется на уровне 40 пикселей, в то время как нижняя строка имеет переменную высоту. Оба столбца имеют переменную ширину, но второй столбец имеет вдвое больший вес, чем первый столбец. Поскольку сетка невидима, фигура кажется пустой.
fig = uifigure('Position',[100 100 437 317]); g = uigridlayout(fig,[2 2]); g.RowHeight = {40,'1x'}; g.ColumnWidth = {'1x','2x'};

Добавьте метку в оба столбца верхней строки. Затем добавьте компонент осей к каждому столбцу нижней строки.
% Add title title = uilabel(g,'Text','Market Trends'); title.HorizontalAlignment = 'center'; title.FontSize = 24; title.Layout.Row = 1; title.Layout.Column = [1,2]; % Add two axes ax1 = uiaxes(g); ax2 = uiaxes(g);

Поскольку левый столбец имеет вес 1, и правый столбец имеет вес 2оси справа используют вдвое больше горизонтального пространства, чем оси слева. Сетка сохраняет это отношение при изменении размера фигуры.
Одним из способов упорядочения компонентов пользовательского интерфейса на панели является создание сетки на панели.
Создайте фигуру и сетку 1 на 2. Затем настройте ширину столбца. В этом случае левый столбец фиксируется на 220 пикселы, в то время как правый столбец имеет переменную ширину. Поскольку сетка невидима, фигура кажется пустой.
fig = uifigure('Position',[100 100 500 315]); grid1 = uigridlayout(fig,[1 2]); grid1.ColumnWidth = {220,'1x'};

Добавление панели и осей к grid1.
p = uipanel(grid1,'Title','Configuration'); ax = uiaxes(grid1);

Создание сетки с именем grid2 внутри панели. Затем разместите три компонента и три метки внутри grid2. Левый столбец grid2 выравнивает метки по компонентам. Поскольку в каждой строке используется только 22 пикселя, панель имеет дополнительное пространство под третьей строкой.
% Grid in the panel grid2 = uigridlayout(p,[3 2]); grid2.RowHeight = {22,22,22}; grid2.ColumnWidth = {80,'1x'}; % Device label dlabel = uilabel(grid2); dlabel.HorizontalAlignment = 'right'; dlabel.Text = 'Device'; % Device drop-down devicedd = uidropdown(grid2); devicedd.Items = {'Select a device'}; % Channel label chlabel = uilabel(grid2); chlabel.HorizontalAlignment = 'right'; chlabel.Text = 'Channel'; % Channel drop-down channeldd = uidropdown(grid2); channeldd.Items = {'Channel 1', 'Channel 2'}; % Rate Label ratelabel = uilabel(grid2); ratelabel.HorizontalAlignment = 'right'; ratelabel.Text = 'Rate (scans/s)'; % Rate edit field ef = uieditfield(grid2, 'numeric'); ef.Value = 50;

При изменении размера фигуры оси растут и сжимаются, заполняя доступное пространство левого столбца grid1 не использует. Панель остается фиксированной, так как этот столбец имеет ширину 220 пикселей.

Вложенные сетки позволяют управлять подмножествами компонентов. При этом существуют три сетки: одна сетка, покрывающая всю фигуру, вторая сетка, управляющая вертикальной стопкой компонентов, и третья сетка, управляющая двумя кнопками, расположенными бок о бок внизу вертикальной стопы.
Создайте фигуру и сетку 1 на 2. Затем настройте ширину столбца. В этом случае левый столбец фиксируется на 150 пикселы, в то время как правый столбец имеет переменную ширину. Поскольку сетка невидима, фигура кажется пустой.
fig = uifigure('Position',[100 100 500 315]); grid1 = uigridlayout(fig,[1 2]); grid1.ColumnWidth = {150,'1x'};

Создание сетки «4 на 1» с именем grid2 внутри первого столбца grid1. Затем добавьте компонент осей ко второму столбцу grid1.
grid2 = uigridlayout(grid1,[4 1]);
grid2.RowHeight = {22,22,22,44};
ax = uiaxes(grid1);

Добавить три раскрывающихся списка в первые три строки grid2.
% Routes drop-down ddRoutes = uidropdown(grid2); ddRoutes.Items = {'Route 1', 'Route 2'}; % Direction drop-down ddDirection = uidropdown(grid2); ddDirection.Items = {'Inbound', 'Outbound'}; % Time drop-down ddTime = uidropdown(grid2); ddTime.Items = {'Morning', 'Afternoon'};

Создание сетки «1 на 2» с именем grid3 внутри последней строки grid2. Затем добавьте две кнопки к grid3. Удалите заполнение на левом и правом краях grid3 для выравнивания кнопок по левому и правому краям раскрывающихся списков.
grid3 = uigridlayout(grid2,[1 2]); grid3.Padding = [0 10 0 10]; b1 = uibutton(grid3,'Text','Start'); b2 = uibutton(grid3,'Text','Stop');

При изменении размера фигуры оси растут и сжимаются, заполняя доступное пространство левого столбца grid1 не использует. Компоненты на левой стороне остаются фиксированными, поскольку этот столбец определен как 150 пикселы в ширину.

Вывод дочерних компонентов прокручиваемой сетки на вид путем указания координат пикселей или имени местоположения.
Создайте макет сетки 5 на 2 и задайте Scrollable свойство сетки для 'on'. Затем добавьте к сетке метку, таблицу и панель. Установите Scrollable свойства панели для 'off' а затем добавьте диаграмму на панель.
fig = uifigure('Position',[782 497 435 311]); g = uigridlayout(fig,'Scrollable','on'); g.RowHeight = {22,40,22,22,400}; g.ColumnWidth = {400,400}; lbl = uilabel(g,'Text','Tsunamis'); lbl.Layout.Row = 2; lbl.Layout.Column = [1,2]; lbl.HorizontalAlignment = 'center'; lbl.FontSize = 28; tsunamis = readtable('tsunamis.xlsx'); tsunamis.Cause = categorical(tsunamis.Cause); t = uitable(g,'Data',tsunamis); t.Layout.Row = [3,5]; t.Layout.Column = 2; p = uipanel(g); p.Scrollable = 'off'; p.Layout.Row = [3,5]; p.Layout.Column = 1; gb = geobubble(p,tsunamis.Latitude,tsunamis.Longitude,... tsunamis.MaxHeight,tsunamis.Cause);

Выполните прокрутку до расположения в сетке.
scroll(g,100,-30)

Теперь используйте имена расположений для прокрутки к правому нижнему углу сетки.
scroll(g,'bottom','right')

Создайте диспетчер компоновки сетки, который автоматически корректирует размеры строк и столбцов таким образом, чтобы они соответствовали таким компонентам, как метки, при добавлении их в приложение или при динамическом изменении размера шрифта текстовых компонентов.
Создайте диспетчер компоновки сетки 5 на 2. Определить 'fit' для ширины первого столбца и высоты первых четырех строк.
fig = uifigure('Position',[500 500 430 310]); g = uigridlayout(fig); g.ColumnWidth = {'fit',120,'1x'}; g.RowHeight = {'fit','fit','fit','fit','1x'};
Создайте метку заголовка, охватывающую все столбцы. Затем создайте метки и элементы управления вдоль строк первого и второго столбцов. Наконец, создайте компонент пользовательского интерфейса таблицы в последнем столбце, который охватывает строки от двух до пяти. Обратите внимание, что при добавлении компонентов в строки и столбцы с 'fit' высота и ширина, размер этих строк и столбцов автоматически корректируется в соответствии с новым содержимым.
patientLabel = uilabel(g,'Text','Patient:'); patientLabel.Layout.Row = 2; patientLabel.Layout.Column = 1; patientEdit = uieditfield(g); ageLabel = uilabel(g,'Text','Age:'); ageLabel.Layout.Row = 3; ageLabel.Layout.Column = 1; ageEdit = uidropdown(g,'Items',{'<20','20 - 40','40 - 60','>60'}); stateLabel = uilabel(g,'Text','State:'); stateLabel.VerticalAlignment = 'top'; stateLabel.Layout.Row = 4; stateLabel.Layout.Column = 1; stateLB = uilistbox(g,'Items',{'MA','VA','WY'}); tdata = readtable('patients.dat'); uit = uitable(g); uit.Data = tdata; uit.Layout.Row = [2 5]; uit.Layout.Column = 3;

Теперь измените имя шрифта и размер шрифта всех компонентов пользовательского интерфейса в сетке.
set(allchild(g),'FontName','Lucida Console','FontSize',20)

Скрытие компонентов в строке сетки на основе выбора пользователя в раскрывающемся меню.
Создание файла программы с именем showhide.m. В файле,
Создайте сетку 1 на 2 на рисунке и вызовите ее grid1. Эта сетка используется для управления панелью и компонентом осей.
Создайте сетку 3 на 2 внутри панели и вызовите ее grid2. Эта сетка используется для управления компоновкой раскрывающегося меню, двумя вращателями и их метками.
Создание функции обратного вызова с именем findMethodSelected для раскрывающегося меню. При изменении значения раскрывающегося меню на 'Quartiles'обратный вызов скрывает компоненты во второй строке grid2 путем установки grid2.RowHeight{2} кому 0.
Затем запустите файл.
function showhide f = uifigure('Name','Statistical Analysis'); % Create grid1 in the figure grid1 = uigridlayout(f); grid1.RowHeight = {'1x'}; grid1.ColumnWidth= {220,'1x'}; % Add a panel and axes p = uipanel(grid1); ax = uiaxes(grid1); % Create grid2 in the panel grid2 = uigridlayout(p); grid2.RowHeight = {22, 22, 22}; grid2.ColumnWidth = {80,'1x'}; % Add method label and drop-down findMethodLabel = uilabel(grid2,'Text','Find Method:'); findMethod = uidropdown(grid2); findMethod.Items = {'Moving median','Quartiles'}; findMethod.ValueChangedFcn = @findMethodSelected; % Add window size label and spinner winSizeLabel = uilabel(grid2,'Text','Window Size:'); winSize = uispinner(grid2,'Value',0); % Add threshold label and spinner thresLabel = uilabel(grid2,'Text','Threshold:'); thres = uispinner(grid2,'Value',3); function findMethodSelected(src,~) method = src.Value; switch method case 'Quartiles' % Collapse the second row (hides winSize spinner) grid2.RowHeight{2} = 0; case 'Moving median' % Expand the second row grid2.RowHeight{2} = 22; end end end
При установке для параметра «Найти метод» значения «Квартили» в приложении метка «Размер окна» и вращатель рядом с ней скрываются.

parent - Родительский контейнерFigure объект (по умолчанию) | Panel объект | Tab объект | ButtonGroup объект | GridLayout объектРодительский контейнер, указанный как Figure объект, созданный с помощью uifigure функцию или один из ее дочерних контейнеров: Tab, Panel, ButtonGroup, или GridLayout. Если родительский контейнер не указан, MATLAB вызывает uifigure для создания новой функции Figure объект, который служит родительским контейнером.
sz - Размер[2 2] (по умолчанию) | двухэлементный векторРазмер сетки, определяемый как двухэлементный вектор. Первый элемент - количество строк, а второй - количество столбцов. Оба значения должны быть больше 0. При указании этого аргумента без установки RowHeight или ColumnWidth MATLAB автоматически устанавливает высоту строки и ширину столбца как '1x'.
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
uigridlayout('RowHeight',{100,100}) создает сетку, содержащую две строки высотой 100 пикселей.Примечание
Перечисленные здесь свойства являются только подмножеством. Полный список см. в разделе Свойства GridLayout.
'ColumnWidth' - Ширина столбца{'1x','1x'} (по умолчанию) | массив ячеек | строковый массив | числовой массивШирина столбца, заданная как массив ячеек, содержащий 'fit', числа или числа в паре с 'x' персонажи. Можно указать любую комбинацию значений. Количество элементов в массиве ячеек определяет количество столбцов в сетке. Например, чтобы создать сетку из 4 столбцов, укажите массив ячеек 1 на 4. Ширина столбца может быть указана как строковый массив или числовой массив, только если указанные элементы имеют одинаковый тип, например ["1x" "2x" "1x"] или [100 200 50].
Существует три различных типа ширины столбцов:
Ширина подгонки - Указать 'fit'. Ширина столбца автоматически корректируется в соответствии с его содержимым. Для текстовых компонентов: 'fit' ширина корректируется с помощью свойств шрифта для отображения всего текста. Для нетекстовых компонентов: 'fit' ширина зависит от размера компонента по умолчанию и других факторов. Использовать 'fit' width, если вы хотите избежать жесткого кодирования ширины столбца в соответствии с компонентами, или если ваше приложение переведено на другой язык или работает на разных платформах.
Фиксированная ширина в пикселях - укажите число. Ширина столбца фиксируется в указанном количестве пикселов. При изменении размера родительского контейнера ширина столбца не изменяется.
Переменная ширина - укажите число, спаренное с 'x' символ (например, '1x'). При изменении размера родительского контейнера ширина столбца увеличивается или уменьшается. Столбцы переменной ширины заполняют оставшееся горизонтальное пространство, которое не используется в столбцах фиксированной ширины. Число, которое вы соединяете с 'x' символ - это вес для разделения оставшегося пространства между всеми столбцами переменной ширины. Если сетка имеет только один столбец переменной ширины, она использует все оставшееся пространство независимо от числа. Если существует несколько столбцов переменной ширины, в которых используется одно и то же число, то они используют пространство поровну. В противном случае объем пространства пропорционален числу.
Например, {'fit',200,'2x','1x'} указывает, что ширина первого столбца соответствует его содержимому, второй столбец фиксируется в 200 пикселах, а последние два столбца совместно используют оставшееся горизонтальное пространство. В третьем столбце используется вдвое больше места, чем в четвертом.
Изменение некоторых аспектов макета может повлиять на значение этого свойства. Например, добавление дополнительных компонентов в полностью заполненную сетку изменяет размер сетки для размещения новых компонентов.
Изменение ColumnWidth свойство на компоновке сетки, которая уже содержит компоненты, не изменяет компоновку компонентов. Например, при попытке динамического удаления столбца, содержащего компоненты, ColumnWidth свойство не изменяется до тех пор, пока эти компоненты не будут перемещены из этого столбца.
'RowHeight' - Высота строки{'1x','1x'} (по умолчанию) | массив ячеек | строковый массив | числовой массивВысота строки, указанная как массив ячеек, содержащий 'fit', числа или числа в паре с 'x' персонажи. Можно указать любую комбинацию значений. Количество элементов в массиве ячеек определяет количество строк в сетке. Например, чтобы создать сетку с 4 строками, укажите массив ячеек 1 на 4. Высота строки может быть указана как строковый массив или числовой массив, только если указанные элементы имеют один и тот же тип, например ["1x" "2x" "1x"] или [100 200 50].
Существует три различных типа высоты строк:
Высота посадки - Указать 'fit'. Высота строки автоматически корректируется в соответствии с содержимым строки. Для текстовых компонентов: 'fit' высота корректируется с помощью свойств шрифта для отображения всего текста. Для нетекстовых компонентов: 'fit' высота зависит от размера компонента по умолчанию и других факторов. Использовать 'fit' если вы хотите избежать жесткого кодирования высоты строки в соответствии с компонентами, или если ваше приложение переведено на другой язык или работает на разных платформах.
Фиксированная высота в пикселях - укажите число. Высота строки фиксируется в указанном количестве пикселов. При изменении размера родительского контейнера высота строки не изменяется.
Переменная высота - укажите число, спаренное с 'x' символ (например, '1x'). При изменении размера родительского контейнера строка растет или сжимается. Строки переменной высоты заполняют оставшееся вертикальное пространство, которое строки фиксированной высоты не используют. Число, которое вы соединяете с 'x' символ - это вес для разделения оставшегося пространства между всеми строками переменной высоты. Если сетка имеет только одну строку переменной высоты, она использует все оставшееся пространство независимо от числа. Если существует несколько строк переменной высоты, которые используют одно и то же число, то они используют пространство поровну. В противном случае объем пространства пропорционален числу.
Например, {'fit',200,'2x','1x'} указывает, что высота первой строки соответствует ее содержимому, вторая строка зафиксирована в 200 пикселях, а последние две строки имеют оставшееся вертикальное пространство. Третья строка использует вдвое больше места, чем четвертая строка.
Изменение некоторых аспектов макета может повлиять на значение этого свойства. Например, добавление дополнительных компонентов в полностью заполненную сетку изменяет размер сетки для размещения новых компонентов.
Изменение RowHeight свойство на компоновке сетки, которая уже содержит компоненты, не изменяет компоновку компонентов. Например, при попытке динамического удаления строки, содержащей компоненты, RowHeight свойство не изменяется до тех пор, пока эти компоненты не будут перемещены из этой строки.
Для просмотра списка объектов-компонентов в сетке выполните запрос Children свойство сетки. Изменение порядка в списке не приводит к изменению формата в сетке.
GridLayout фон больше не прозраченВ R2020b изменилось поведение
Начиная с R2020b, GridLayout объекты имеют BackgroundColor и больше не являются прозрачными. Цвет фона по умолчанию является цветом по умолчанию для всех контейнеров (например, рисунков и панелей).
Если ваше приложение имеет сетку в контейнере с цветом, отличным от цвета по умолчанию, установите BackgroundColor имущества GridLayout объект этого цвета для сохранения внешнего вида приложения.
Если у вашего приложения есть объекты за сеткой, которые вы хотите сохранить видимыми, переместите эти объекты в сетку, сделав их потомками GridLayout.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.