Управление поведением диспетчера компоновки сетки
Менеджеры компоновки сетки размещают компоненты пользовательского интерфейса вдоль строк и столбцов невидимой сетки, охватывающей всю фигуру или контейнер внутри фигуры. Изменяя значения свойств компоновки сетки, можно изменить некоторые аспекты ее поведения. Используйте точечную нотацию для ссылки на определенный объект и свойство:
fig = uifigure;
g = uigridlayout(fig);
g.ColumnWidth = {100,'1x'};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 свойство не изменяется до тех пор, пока эти компоненты не будут перемещены из этой строки.
ColumnSpacing - Интервал между колоннами10 (по умолчанию) | числоИнтервал между столбцами, заданный как скалярное число пикселов между соседними столбцами в сетке. Указанное число относится ко всем столбцам.
RowSpacing - Интервал между строками10 (по умолчанию) | числоИнтервал между строками, заданный как скалярное число пикселов между соседними строками в сетке. Указанное число относится ко всем строкам.
Padding - Заполнение[10 10 10 10] (по умолчанию) | [left bottom right top]Заполнение по внешнему периметру сетки, определяемое как вектор формы [left bottom right top]. Элементы вектора описаны в таблице ниже.
| Векторный элемент | Описание |
|---|---|
left | Расстояние в пикселях между внутренним левым краем родительского контейнера и левым краем сетки. |
bottom | Расстояние в пикселях между внутренним нижним краем родительского контейнера и нижним краем сетки. |
right | Расстояние в пикселях между внутренним правым краем родительского контейнера и правым краем сетки. |
top | Расстояние в пикселях между внутренним верхним краем родительского контейнера и верхним краем сетки. Внутренний верхний край родительского контейнера начинается под всеми украшениями, такими как заголовки, метки вкладок или строки меню. |
BackgroundColor - Цвет фона[0.94 0.94 0.94] (по умолчанию) | триплет RGB | шестнадцатеричный цветовой код | 'r' | 'g' | 'b' | ...Цвет фона, указанный как триплет RGB, шестнадцатеричный код цвета или один из параметров цвета, перечисленных в таблице.
Триплеты RGB и шестнадцатеричные цветовые коды полезны для задания пользовательских цветов.
Триплет RGB - это трехэлементный вектор строки, элементы которого задают интенсивности красной, зеленой и синей составляющих цвета. Интенсивности должны находиться в диапазоне [0,1]; например, [0.4 0.6 0.7].
Шестнадцатеричный цветовой код - это символьный вектор или строковый скаляр, начинающийся с хэш-символа (#), за которыми следуют три или шесть шестнадцатеричных цифр, которые могут варьироваться от 0 кому F. Значения не чувствительны к регистру. Таким образом, цветовые коды '#FF8800', '#ff8800', '#F80', и '#f80' эквивалентны.
Можно также задать некоторые общие цвета по имени. В этой таблице перечислены параметры именованного цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.
| Имя цвета | Краткое имя | Триплет RGB | Шестнадцатеричный цветовой код | Внешность |
|---|---|---|---|---|
'red' | 'r' | [1 0 0] | '#FF0000' |
|
'green' | 'g' | [0 1 0] | '#00FF00' |
|
'blue' | 'b' | [0 0 1] | '#0000FF' |
|
'cyan' | 'c' | [0 1 1] | '#00FFFF' |
|
'magenta' | 'm' | [1 0 1] | '#FF00FF' |
|
'yellow' | 'y' | [1 1 0] | '#FFFF00' |
|
'black' | 'k' | [0 0 0] | '#000000' |
|
'white' | 'w' | [1 1 1] | '#FFFFFF' |
|
Вот триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию MATLAB ®, используемых на многих типах графиков.
| Триплет RGB | Шестнадцатеричный цветовой код | Внешность |
|---|---|---|
[0 0.4470 0.7410] | '#0072BD' |
|
[0.8500 0.3250 0.0980] | '#D95319' |
|
[0.9290 0.6940 0.1250] | '#EDB120' |
|
[0.4940 0.1840 0.5560] | '#7E2F8E' |
|
[0.4660 0.6740 0.1880] | '#77AC30' |
|
[0.3010 0.7450 0.9330] | '#4DBEEE' |
|
[0.6350 0.0780 0.1840] | '#A2142F' |
|
Visible - Видимость детей'on' (по умолчанию) | логическое значение on/offВидимость нижестоящих элементов, указанных как 'on' или 'off'., или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства в качестве логического значения. Значение сохраняется как логическое значение типа вкл/выкл matlab.lang.OnOffSwitchState.
Установить для этого свойства значение 'off' скрытие всех дочерних компонентов в сетке и их потомков. Дети и их потомки скрыты независимо от ценности их Visible свойства. Когда компоненты скрыты, их свойства можно получить и задать, даже если они не отображаются в приложении.
При установке для этого свойства значения 'on', дети и их потомки видны только в том случае, если Visible свойства также имеют значение 'on'.
Установка Visible свойство в сетке не изменяет значения Visible свойства его потомков.
Scrollable - Возможность прокрутки'off' (по умолчанию) | логическое значение on/offВозможность прокрутки, указанная как 'off' или 'on'или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства в качестве логического значения. Значение сохраняется как логическое значение типа вкл/выкл matlab.lang.OnOffSwitchState.
Установка для этого свойства значения 'on' включает прокрутку в диспетчере компоновки сетки. Для прокрутки необходимо также выполнить следующие условия:
Сумма значений, указанных для 'RowHeight' свойство диспетчера компоновки сетки должно быть больше высоты родительского контейнера.
Сумма значений, указанных для 'ColumnWidth' свойство диспетчера компоновки сетки должно быть больше ширины родительского контейнера.
По крайней мере одна строка или столбец диспетчера компоновки сетки должна иметь фиксированную высоту или ширину пиксела.
Диспетчер компоновки сетки должен содержать компоненты.
Некоторые типы диаграмм и осей не поддерживают прокручиваемые контейнеры. Однако можно поместить диаграмму или оси в нескручиваемую панель, а затем поместить панель в прокручиваемый контейнер. Дополнительные сведения см. в разделе Отображение графики в App Designer.
ContextMenu - Контекстное менюGraphicsPlaceholder массив (по умолчанию) | ContextMenu объектКонтекстное меню, указанное как ContextMenu объект. Это свойство используется для отображения контекстного меню при щелчке правой кнопкой мыши на диспетчере компоновки сетки. Создайте контекстное меню с помощью команды uicontextmenu функция.
Layout - Параметры компоновкиLayoutOptions массив (по умолчанию) | GridLayoutOptions объектПараметры компоновки, указанные как GridLayoutOptions объект. Это свойство задает параметры вложенного контейнера компоновки сетки. Если компоновка сетки не является дочерним элементом другого контейнера компоновки сетки (например, это дочерний элемент фигуры или панели), то это свойство является пустым и не оказывает никакого влияния. Однако если компоновка сетки является дочерней по отношению к другой компоновке сетки, можно поместить эту дочернюю сетку в нужную строку и столбец родительской сетки, задав значение Row и Column свойства на панели GridLayoutOptions объект.
Например, этот код гнездится grid2 в третьей строке и втором столбце grid1.
grid1 = uigridlayout([4 3]); grid2 = uigridlayout(grid1); grid2.Layout.Row = 3; grid2.Layout.Column = 2;
Row или Column свойство как двухэлементный вектор. Например, эта команда охватывает grid2 поверх столбцов 2 через 3 из grid1:grid2.Layout.Column = [2 3];
CreateFcn - Функция создания'' (по умолчанию) | дескриптор функции | массив ячеек | символьный векторФункция создания объекта, заданная как одно из следующих значений:
Дескриптор функции.
Массив ячеек, в котором первый элемент является дескриптором функции. Последующие элементы в массиве ячеек являются аргументами для передачи функции обратного вызова.
Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуется). MATLAB вычисляет это выражение в базовой рабочей области.
Дополнительные сведения об указании обратного вызова в качестве дескриптора функции, массива ячеек или символьного вектора см. в разделе Запись обратных вызовов в App Designer.
Это свойство определяет функцию обратного вызова, выполняемую при создании объекта MATLAB. MATLAB инициализирует все значения свойств перед выполнением CreateFcn обратный вызов. Если не указать CreateFcn , то MATLAB выполняет функцию создания по умолчанию.
Установка CreateFcn свойство существующего компонента не оказывает никакого влияния.
Если это свойство указано как дескриптор функции или массив ячеек, можно получить доступ к объекту, создаваемому с помощью первого аргумента функции обратного вызова. В противном случае используйте gcbo для доступа к объекту.
DeleteFcn - Функция удаления'' (по умолчанию) | дескриптор функции | массив ячеек | символьный векторФункция удаления объекта, заданная как одно из следующих значений:
Дескриптор функции.
Массив ячеек, в котором первый элемент является дескриптором функции. Последующие элементы в массиве ячеек являются аргументами для передачи функции обратного вызова.
Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуется). MATLAB вычисляет это выражение в базовой рабочей области.
Дополнительные сведения об указании обратного вызова в качестве дескриптора функции, массива ячеек или символьного вектора см. в разделе Запись обратных вызовов в App Designer.
Это свойство определяет функцию обратного вызова, выполняемую при удалении объекта MATLAB. MATLAB выполняет команду DeleteFcn обратный вызов перед уничтожением свойств объекта. Если не указать DeleteFcn , то MATLAB выполняет функцию удаления по умолчанию.
Если это свойство указано как дескриптор функции или массив ячеек, можно получить доступ к удаляемому объекту с помощью первого аргумента функции обратного вызова. В противном случае используйте gcbo для доступа к объекту.
Interruptible - Прерывание обратного вызова'on' (по умолчанию) | логическое значение on/offПрерывание обратного вызова, указанное как 'on' или 'off'или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства в качестве логического значения. Значение сохраняется как логическое значение типа вкл/выкл matlab.lang.OnOffSwitchState.
Это свойство определяет, можно ли прервать выполняющийся обратный вызов. Существует два состояния обратного вызова:
Выполняемый обратный вызов - это выполняемый в данный момент обратный вызов.
Обратный вызов с прерыванием - это обратный вызов, который пытается прервать выполняющийся обратный вызов.
Всякий раз, когда MATLAB вызывает обратный вызов, этот обратный вызов пытается прервать выполняющийся обратный вызов (если он существует). Interruptible свойство объекта, владеющего выполняющимся обратным вызовом, определяет, разрешено ли прерывание.
Значение 'on' позволяет другим обратным вызовам прерывать обратные вызовы объекта. Прерывание происходит в следующей точке, где MATLAB обрабатывает очередь, например, при наличии drawnow, figure, uifigure, getframe, waitfor, или pause команда.
Если выполняемый обратный вызов содержит одну из этих команд, MATLAB останавливает выполнение обратного вызова в этот момент и выполняет прерванный обратный вызов. MATLAB возобновляет выполнение выполняющегося обратного вызова после завершения прерванного обратного вызова.
Если выполняемый обратный вызов не содержит одну из этих команд, MATLAB завершает выполнение обратного вызова без прерывания.
Значение 'off' блокирует все попытки прерывания. BusyAction свойство объекта, владеющего прерывистым обратным вызовом, определяет, отбрасывается ли прерывистый обратный вызов или помещается в очередь.
Примечание
Прерывание и выполнение обратного вызова ведут себя по-разному в следующих ситуациях:
Если обратный вызов с прерыванием является DeleteFcn, CloseRequestFcn или SizeChangedFcn обратный вызов, то прерывание происходит независимо от Interruptible значение свойства.
Если выполняемый обратный вызов в данный момент выполняется waitfor функция, то прерывание происходит независимо от Interruptible значение свойства.
Timer объекты выполняются в соответствии с графиком независимо от Interruptible значение свойства.
Когда происходит прерывание, MATLAB не сохраняет состояние свойств или отображения. Например, объект, возвращенный gca или gcf при выполнении другого обратного вызова команда может измениться.
BusyAction - Постановка в очередь обратного вызова'queue' (по умолчанию) | 'cancel'Очередь обратного вызова, указанная как 'queue' или 'cancel'. BusyAction определяет, как MATLAB обрабатывает выполнение прерывания обратных вызовов. Существует два состояния обратного вызова:
Выполняемый обратный вызов - это выполняемый в данный момент обратный вызов.
Обратный вызов с прерыванием - это обратный вызов, который пытается прервать выполняющийся обратный вызов.
Всякий раз, когда MATLAB вызывает обратный вызов, этот обратный вызов пытается прервать выполняющийся обратный вызов. Interruptible свойство объекта, владеющего выполняющимся обратным вызовом, определяет, разрешено ли прерывание. Если прерывание не разрешено, то BusyAction свойство объекта, владеющего прерывистым обратным вызовом, определяет, отбрасывается он или помещается в очередь. Это возможные значения BusyAction свойство:
'queue' - помещает обратный вызов с прерыванием в очередь, подлежащую обработке после завершения выполнения обратного вызова.
'cancel' - не выполняет обратный вызов прерывания.
BeingDeleted - Статус удаленияЭто свойство доступно только для чтения.
Состояние удаления, возвращаемое как логическое значение включения/выключения типа matlab.lang.OnOffSwitchState.
MATLAB устанавливает BeingDeleted свойство для 'on' когда DeleteFcn обратный вызов начинает выполнение. BeingDeleted свойство остается установленным в значение 'on' до тех пор, пока объект-компонент больше не будет существовать.
Проверьте значение BeingDeleted для проверки того, что объект не будет удален перед запросом или изменением.
Parent - Родительский контейнерFigure объект (по умолчанию) | Panel объект | Tab объект | ButtonGroup объект | GridLayout объектРодительский контейнер, указанный как Figure объект, созданный с помощью uifigure функцию или один из ее дочерних контейнеров: Tab, Panel, ButtonGroup, или GridLayout. Если контейнер не указан, MATLAB вызывает uifigure для создания новой функции Figure объект, который служит родительским контейнером.
Children - ДетиGraphicsPlaceholderArray | массив объектов компонентов пользовательского интерфейсаДочерние объекты, возвращаемые как массив объектов компонента пользовательского интерфейса. Это свойство используется для просмотра списка нижестоящих элементов или для изменения порядка нижестоящих элементов путем установки для свойства значения «перестановка». С помощью этого свойства нельзя добавлять или удалять дочерние элементы. Чтобы добавить дочерний элемент в этот список, установите Parent свойства дочернего компонента пользовательского интерфейса.
Изменение порядка нижестоящих элементов не влияет на расположение компонентов в сетке. Чтобы изменить расположение компонента в сетке, задайте его Layout собственность.
HandleVisibility - Видимость ручки объекта'on' (по умолчанию) | 'callback' | 'off'Видимость дескриптора объекта, указанного как 'on', 'callback', или 'off'.
Это свойство управляет видимостью объекта в родительском списке потомков. Если объект не виден в списке нижестоящих элементов родительского объекта, он не возвращается функциями, получающими объекты путем поиска в иерархии объектов или запроса свойств. Эти функции включают get, findobj, clf, и close. Объекты действительны, даже если они не видны. При наличии доступа к объекту можно задать и получить его свойства и передать его любой функции, которая работает с объектами.
| Значение HandleVisibility | Описание |
|---|---|
'on' | Объект всегда виден. |
'callback' | Объект виден из обратных вызовов или функций, вызываемых обратными вызовами, но не из функций, вызываемых из командной строки. Этот параметр блокирует доступ к объекту в командной строке, но разрешает доступ к нему функциям обратного вызова. |
'off' | Объект всегда невидим. Этот параметр полезен для предотвращения непреднамеренных изменений пользовательского интерфейса другой функцией. Установите HandleVisibility кому 'off' , чтобы временно скрыть объект во время выполнения этой функции. |
Type - Тип графического объекта'uigridlayout'Это свойство доступно только для чтения.
Тип графического объекта, возвращаемого как 'uigridlayout'.
Tag - Идентификатор объекта'' (по умолчанию) | символьный вектор | строковый скалярИдентификатор объекта, заданный как вектор символа или скаляр строки. Можно указать уникальный Tag для использования в качестве идентификатора объекта. При необходимости доступа к объекту в другом месте кода можно использовать findobj для поиска объекта на основе Tag значение.
UserData - Данные пользователя[] (по умолчанию) | массивПользовательские данные, указанные как любой массив MATLAB. Например, можно указать скаляр, вектор, матрицу, массив ячеек, символьный массив, таблицу или структуру. Это свойство используется для хранения произвольных данных объекта.
Если вы работаете в App Designer, создайте открытые или частные свойства в приложении для совместного использования данных вместо использования UserData собственность. Дополнительные сведения см. в разделе Общий доступ к данным в приложениях App Designer.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.