exponenta event banner

свиток

Прокрутка до местоположения внутри компонента

Описание

Прокручиваемый контейнер или группа кнопок

scroll(container,vlocation) прокручивает контейнер или группу кнопок по вертикали. Определить vlocation как 'top' или 'bottom'. Дополнительные сведения о возможности прокрутки см. в разделе Условия включения прокрутки.

scroll(container,hlocation) прокрутки по горизонтали. Определить hlocation как 'left' или 'right'.

scroll(container,hlocation,vlocation) прокручивает как по вертикали, так и по горизонтали в угол. Например, scroll(container,'right','bottom') прокрутка в правый нижний угол компонента.

пример

scroll(container,x,y) прокручивает до заданных координат (x, y). Координаты измеряются в пикселях от нижнего левого угла контейнера или группы кнопок.

пример

scroll(container,coord) задает пиксельные координаты как двухэлементный вектор coord. Например, scroll(container,[100 150]) прокрутка контейнера или группы кнопок до координат (100,150).

Текстовая область

пример

scroll(txa,vlocation) прокручивает текстовую область по вертикали. Определить vlocation как 'top' или 'bottom'.

Дерево

scroll(t,vlocation) прокручивает дерево вертикально. Определить vlocation как 'top' или 'bottom'.

пример

scroll(t,treenode) выполняет прокрутку до указанного узла дерева.

Список

scroll(lb,vlocation) прокручивает список вертикально. Определить vlocation как 'top' или 'bottom'.

пример

scroll(lb,item) выполняет прокрутку до указанного элемента списка.

scroll(lb,itemdata) выполняет прокрутку до элемента списка с указанными данными элемента. При наличии нескольких элементов с одинаковыми данными элементов функция выполняет прокрутку до первого элемента.

Стол

scroll(uit,vlocation) прокручивает таблицу по вертикали. Определить vlocation как 'top' или 'bottom'.

scroll(uit,hlocation) прокручивает таблицу по горизонтали. Определить hlocation как 'left' или 'right'.

пример

scroll(uit,target,targetIndex) выполняет прокрутку до указанной строки, столбца или ячейки таблицы. Например, scroll(uit,'Row',10) прокрутка до десятой строки таблицы.

Примеры

свернуть все

Прокрутка до указанного (x,y)- координаты внутри фигуры, созданной с помощью uifigure функция.

Создайте фигуру и задайте Scrollable свойство для 'on'. Затем добавьте пять дочерних компонентов. Чтобы обеспечить возможность прокрутки фигуры, поместите первый компонент над верхним краем фигуры. Затем поместите компоненты достаточно далеко друг от друга, чтобы они не могли поместиться в фигуру вместе.

% Create figure
fig = uifigure('Name','Customer','Scrollable','on');
fig.Position = [100 100 493 283];

% Title label
title = uilabel(fig,'Text','Customer Record');
title.FontSize = 18;
title.FontWeight = 'bold';
title.Position = [173 315 157 22];

% Name
name = uieditfield(fig,'text');
name.Position = [169 239 173 22];
namelabel = uilabel(fig,'Text','Name','HorizontalAlignment','right');
namelabel.Position = [116 239 38 22];

% Phone
phone = uieditfield(fig,'text');
phone.Position = [169 164 173 22];
phonelabel = uilabel(fig,'Text','Phone','HorizontalAlignment','right');
phonelabel.Position = [114 164 40 22];

% Balance
balance = uieditfield(fig,'numeric');
balance.Position = [169 89 173 22];
balancelabel = uilabel(fig,'Text','Balance','HorizontalAlignment','right');
balancelabel.Position = [105 89 49 22];

% Submit button
button = uibutton(fig,'push','Text','Submit');
button.Position = [169 14 173 22];

По умолчанию MATLAB ® прокручивает в левый верхний угол области, в которой находятся дочерние компоненты.

Прокрутка до местоположения (1,1), которая является нижней частью фигуры.

scroll(fig,1,1)

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

Создайте макет сетки 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')

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

Создайте фигуру с двумя раскрывающимися компонентами, списком и таблицей. Расположите компоненты таким образом, чтобы все они не могли отображаться на рисунке одновременно.

fig = uifigure;
fig.Scrollable = 'on';
fig.Position = [100 300 328 110];

dd1 = uidropdown(fig);
dd1.Position = [20 360 120 22];

dd2 = uidropdown(fig);
dd2.Position = [20 200 120 22];

lb = uilistbox(fig);
lb.Position = [230 300 120 80];

t = readtable('patients.xls');
uit = uitable(fig,'Data',t);
uit.Position = [375 100 300 300];

Прокрутите до таблицы.

scroll(fig,uit.Position(1:2))

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

Создание текстовой области. Укажите размер и подробный текст для него.

fig = uifigure;
txa = uitextarea(fig);
txa.Position = [100 100 80 80];
txa.Value = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.';

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

scroll(txa,'bottom')

Выведите элемент списка в поле просмотра, указав этот элемент.

Создание списка, содержащего список имен со связанными именами ItemsData.

fig = uifigure('Position',[680 678 300 200]);
list = uilistbox(fig, 'Position',[70 50, 150 78]);
list.Items = {'Diane Fitzsimmons', 'Naomi Becker', 'Nick Stewart',...
           'Alex Bradford', 'Caroline Eliot', 'Leslie Bond', ...
           'Aaron Silberlicht', 'Ramu Sadasiv', 'Joyce Wu',...
           'Ann Shanahan'};
list.ItemsData = [1 2 3 4 5 6 7 8 9 10];

Прокрутка до Caroline Eliot.

scroll(list,'Caroline Eliot')

Выбрать Caroline Eliot путем установки Value к соответствующему элементу в ItemsData собственность.

list.Value = 5;

Ввод узла дерева в представление путем указания TreeNode объект.

Создайте дерево, содержащее четыре узла верхнего уровня, каждый из которых имеет дочерние узлы.

fig = uifigure;
tree = uitree(fig,'Position',[20 20 175 100]);
    
% First level nodes
category1 = uitreenode(tree,'Text','Runners');
category2 = uitreenode(tree,'Text','Cyclists');
category3 = uitreenode(tree,'Text','Hikers');
category4 = uitreenode(tree,'Text','Swimmers');

% Second level nodes
r1 = uitreenode(category1,'Text','Joe');
r2 = uitreenode(category1,'Text','Linda');
c1 = uitreenode(category2,'Text','Rajeev');
h1 = uitreenode(category3,'Text','Jack');
s1 = uitreenode(category4,'Text','Logan');

Разверните узлы, чтобы Swimmers прокручивает из вида.

expand(tree)

Прокрутите до Swimmers узел.

scroll(tree,category4)

Выберите Swimmers путем установки SelectedNodes имущества Tree объект.

tree.SelectedNodes = category4;

Считывание образцов данных пациентов в рабочую область в виде массива таблиц. Затем создайте компонент пользовательского интерфейса таблицы для отображения данных.

tdata = readtable('patients.xls');
vars = {'Age','Systolic','Diastolic','Smoker'};
tdata = tdata(1:40,vars);

fig = uifigure;
uit = uitable(fig,'Data',tdata);
uit.RowName = 'numbered';

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

scroll(uit,'row',25)

Входные аргументы

свернуть все

Прокручиваемый контейнер или группа кнопок, заданная как фигура, созданная с помощью uifigure функции или любого из следующих компонентов в пределах этой фигуры: разметка сетки, панель, группа кнопок или вкладка.

Расположение вертикальной прокрутки, указанное как 'top' или 'bottom'.

Расположение горизонтальной прокрутки, указанное как 'left' или 'right'.

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

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

Если макет сетки выше родительского контейнера, можно использовать отрицательные координаты Y для прокрутки к компонентам в сетке, лежащим ниже нижнего края родительского контейнера.

Координаты пикселей, заданные как двухэлементный вектор строк целых чисел.

Пример: [100 150] задает координаты пикселей (100,150).

Текстовая область, заданная как компонент, созданный с помощью uitextarea функция.

Прокрутка в текстовой области поддерживается начиная с R2020b.

Дерево, указанное как компонент, созданный с помощью uitree функция. Этот компонент может быть деревом со стилем по умолчанию или деревом флажков, созданным с помощью uitree('checkbox').

Узел дерева, заданный как компонент, созданный с помощью uitreenode функция. Этот аргумент используется для указания узла дерева, к которому выполняется прокрутка.

Поле списка, указанное как компонент, созданный с помощью uilistbox функция.

Элемент списка, указанный как элемент Items имущество lb. Функция прокручивается до указанного элемента в окне списка.

Данные элемента списка, указанные как элемент списка ItemsData имущество lb. Функция прокручивается до элемента в окне списка с соответствующими данными элемента. Если таких элементов несколько, функция прокручивается до первого.

Таблица, указанная как компонент, созданный с помощью uitable функция.

Прокрутка внутри таблицы поддерживается начиная с R2021a и поддерживается только тогда, когда компонент пользовательского интерфейса таблицы находится в рисунке, созданном с помощью uifigure функция.

Цель прокрутки таблицы, указанная как 'row', 'column', или 'cell'.

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

ЦельПоддерживаемое значениеПримерРезультат
'row'Положительное целое число4Выполните вертикальную прокрутку к строке с соответствующим индексом строки.
'column'Положительное целое число3Выполните прокрутку по горизонтали к столбцу с соответствующим индексом столбца.
'cell'Двухэлементный вектор строк положительных целых чисел[5 9]Выполните прокрутку к ячейке с соответствующими индексами строк и столбцов.

Подробнее

свернуть все

Условия, разрешающие прокрутку

Чтобы разрешить прокрутку внутри контейнера, Scrollable свойство контейнера должно иметь значение 'on'. Кроме того, эти специфичные для контейнера условия также должны соответствовать действительности:

Макеты сетки

  • Сумма значений, указанных для RowHeight свойство сетки должно быть больше высоты родительского контейнера.

  • Сумма значений, указанных для ColumnWidth свойство сетки должно быть больше ширины родительского контейнера.

  • По крайней мере одна строка или столбец сетки должна иметь фиксированную высоту или ширину пиксела.

  • Сетка должна содержать компоненты.

Контейнеры, отличные от компоновки сетки

  • Дочерние компоненты в контейнере должны занимать большую площадь, чем может одновременно отображаться в контейнере.

  • Компоненты, которые не помещаются в контейнер, должны находиться выше или справа от контейнера.

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