Управление поведением менеджера размещения сетки
Менеджеры размещений сетки размещают компоненты пользовательского интерфейса вдоль строк и столбцов невидимой сетки, которая охватывает весь рисунок или контейнер внутри рисунка. Изменяя значения свойств размещения сетки, можно изменить определенные аспекты его поведения. Используйте запись через точку для ссылки на определенный объект и свойство:
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'
., или как числовое или логическое 1 (
true
) или 0
(false
). Значение 'on'
эквивалентно true
, и 'off'
эквивалентно false
. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState
.
Установите это свойство на 'off'
чтобы скрыть все дочерние компоненты в сетке и их потомки. Дети и их потомки скрыты независимо от значения своих Visible
свойства. Когда компоненты скрыты, можно получить и задать их свойства, даже если они не появляются в приложении.
Когда вы устанавливаете это свойство на 'on'
дети и их потомки видны только в том случае, если они Visible
свойства также установлены в 'on'
.
Установка Visible
свойство в сетке не изменяет значения Visible
свойства его потомков.
Scrollable
- Возможность прокрутки'off'
(по умолчанию) | логическое значение включения/выключенияВозможность прокрутки, заданная как 'off'
или 'on'
, или как числовое или логическое 1
(true
) или 0
(false
). Значение 'on'
эквивалентно true
, и 'off'
эквивалентно false
. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа 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'
, или как числовое или логическое 1
(true
) или 0
(false
). Значение 'on'
эквивалентно true
, и 'off'
эквивалентно false
. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState
.
Это свойство определяет, можно ли прерывать выполняемый коллбэк. Существует два состояния коллбэка:
Обратный коллбэк running - это актуальный на данный момент коллбэк.
Обратный коллбэк interrupting - это коллбэк, который пытается прервать текущий коллбэк.
Всякий раз, когда MATLAB вызывает коллбэк, этот коллбэк пытается прервать текущий коллбэк (если он существует). The Interruptible
свойство объекта, имеющего текущий коллбэк, определяет, разрешено ли прерывание.
Значение 'on'
позволяет другим коллбэкам прерывать коллбэки объекта. Прерывание происходит в следующей точке, где MATLAB обрабатывает очередь, например, когда есть drawnow
, figure
, uifigure
, getframe
, waitfor
, или pause
команда.
Если текущий коллбэк содержит одну из этих команд, MATLAB останавливает выполнение коллбэка в этой точке и выполняет прерывание обратного вызова MATLAB возобновляет выполнение текущего коллбэка после завершения прерывания обратного вызова.
Если текущий коллбэк не содержит одну из этих команд, MATLAB завершает выполнение коллбэка без прерывания.
Значение 'off'
блокирует все попытки прерывания. The BusyAction
свойство объекта, имеющего прерывание обратного вызова, определяет, отменяется ли прерывание обратного вызова или помещается в очередь.
Примечание
Прерывание и выполнение коллбэка происходят по-разному в таких ситуациях:
Если прерывание обратного вызова является DeleteFcn
, CloseRequestFcn
или SizeChangedFcn
коллбэк, тогда прерывание происходит независимо от Interruptible
значение свойства.
Если текущий коллбэк выполняющегося в данного момента, waitfor
function, тогда прерывание происходит независимо от Interruptible
значение свойства.
Timer
объекты выполняются в соответствии с расписанием независимо от Interruptible
значение свойства.
Когда происходит прерывание, MATLAB не сохраняет состояние свойств или отображения. Для примера, объект, возвращенный gca
или gcf
команда может измениться при выполнении другого коллбэка.
BusyAction
- постановка в очередь коллбэков'queue'
(по умолчанию) | 'cancel'
Постановка в очередь коллбэков, заданная как 'queue'
или 'cancel'
. The BusyAction
свойство определяет, как MATLAB обрабатывает выполнение прерываний обратного вызова. Существует два состояния коллбэка:
Обратный коллбэк running - это актуальный на данный момент коллбэк.
Обратный коллбэк interrupting - это коллбэк, который пытается прервать текущий коллбэк.
Всякий раз, когда MATLAB вызывает коллбэк, этот коллбэк пытается прервать текущий коллбэк. The Interruptible
свойство объекта, имеющего текущий коллбэк, определяет, разрешено ли прерывание. Если прерывание не разрешено, то BusyAction
свойство объекта, имеющего прерывание обратного вызова, определяет, будет ли оно сброшено или помещено в очередь. Это возможные значения BusyAction
свойство:
'queue'
- помещает прерывание обратного вызова в очередь вызовов, подлежащих обработке после концов обратного коллбэка.
'cancel'
- Не выполняет прерывание обратного вызова.
BeingDeleted
- Статус удаленияЭто свойство доступно только для чтения.
Статус удаления, возвращенный как логическое значение включения/выключения типа matlab.lang.OnOffSwitchState
.
MATLAB устанавливает BeingDeleted
свойство к 'on'
когда DeleteFcn
коллбэк начинает выполняться. The 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.