scroll

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

Описание

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

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 -cordinate, заданный как неотрицательное целое число в пикселях от левого края контейнера. Контейнер прокручивает, чтобы отобразить указанный x -cordinate слева от видимой области контейнера. Если заданное значение превышает прокручиваемую область контейнера, контейнер прокручивается в заданном направлении.

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

Если размещение сетки выше, чем его родительский контейнер, можно использовать отрицательные 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'. В сложение эти специфичные для контейнера условия должны также быть true:

Сетка размещений

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

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

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

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

Контейнеры, отличные от размещения сетки

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

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

Введенный в R2016a