exponenta event banner

сопротивление

Класс: matlab.uitest.StartCase
Пакет: matlab.uitest

Выполнение жеста перетаскивания для компонента пользовательского интерфейса

Описание

пример

drag(testcase,comp,start,stop) выполняет жест перетаскивания из start кому stop на компоненте пользовательского интерфейса comp.

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

развернуть все

Экземпляр тестового случая, указанный как matlab.uitest.TestCase объект.

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

Поддерживаемый компонентТиповая функция создания
Осиaxes
Кнопкаuiknob
Ползунокuislider
Оси пользовательского интерфейсаuiaxes

Начальное значение жеста перетаскивания, указанное как числовой скаляр или числовой массив 1 на 2 или 1 на 3. Форма start зависит от компонента пользовательского интерфейса:

  • Ручка и ползун (Knob and Slider) - числовой скаляр в пределах компонентов. Пределы определяются Limits свойства компонента.

  • Оси и оси пользовательского интерфейса - числовой массив A 1-на-2 или 1-на-3, содержащий координаты x, y и (необязательно) z.

Пример: 20 (ручка)

Пример: [2.5 3 1.25] (оси пользовательского интерфейса)

Остановка жеста перетаскивания, заданного как числовой скаляр или числовой массив 1 на 2 или 1 на 3. Форма stop зависит от компонента пользовательского интерфейса:

  • Ручка и ползун (Knob and Slider) - числовой скаляр в пределах компонентов. Пределы определяются Limits свойства компонента.

  • Оси и оси пользовательского интерфейса - числовой массив A 1-на-2 или 1-на-3, содержащий координаты x, y и (необязательно) z.

Пример: 30 (ручка)

Пример: [5 3 2.25] (оси пользовательского интерфейса)

Примеры

развернуть все

Создайте ручку.

knob = uiknob;

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

tc = matlab.uitest.TestCase.forInteractiveUse;
tc.drag(knob,13,42)

Создайте ползунок с минимальным значением -237, максимальным значением 237 и начальным значением 7.

slider = uislider('Limits',[-237 237],'Value',7);

Создайте интерактивный тестовый пример и проверьте начальное значение ползунка.

tc = matlab.uitest.TestCase.forInteractiveUse;
tc.verifyEqual(slider.Value,7)
Verification passed.

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

val = 26.75;
tc.drag(slider,-val,val)
tc.verifyEqual(slider.Value,val,'AbsTol',0.1)
Verification passed.

Создайте оси внутри фигуры пользовательского интерфейса, а затем постройте линию в осях. В этом примере график устанавливает пределы оси X и оси Y как [1 10].

f = uifigure;
ax = axes(f);
plot(ax,1:10)

Создайте интерактивный тестовый пример и перетащите его из точки (3, 2) в точку (4, 2). Синяя точка, представляющая программный жест перетаскивания, появляется в начальном значении, а затем исчезает, когда достигает значения остановки. Пределы оси обновляются на основе разницы между начальными и конечными значениями.

tc = matlab.uitest.TestCase.forInteractiveUse;
tc.drag(ax,[3 2],[4 2])

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

tc.verifyEqual(ax.XLim,[0 9],'AbsTol',0.1)
Verification passed.

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

f = uifigure;
ax = axes(f);
surf(ax,peaks)
xlabel(ax,'X')
ylabel(ax,'Y')
zlabel(ax,'Z')
[caz_before,cel_before] = view(ax);

Создайте интерактивный тестовый пример и перетащите его из точки (2, 2, -10) в точку (4, 4, 10). Синяя точка, представляющая программный жест перетаскивания, появляется в начальном значении, а затем исчезает, когда достигает значения остановки. Вид графика поверхности изменяется при перетаскивании.

tc = matlab.uitest.TestCase.forInteractiveUse;
tc.drag(ax,[2 2 -10],[4 4 10])

Убедитесь, что жест перетаскивания изменил вид графика поверхности.

[caz_after,cel_after] = view(ax);
tc.verifyNotEqual([caz_after cel_after],[caz_before cel_before])
Verification passed.
Представлен в R2018a