Как создать фиктивный QQuickItem в C++ во время выполнения
Я использую Qt 5.7
и модульное тестирование с использованием gtest
или как его называют гуглтестс.
У меня есть функция для проверки, которая принимает QQuickItem
, Чтобы проверить это, я хочу создать QQuickItem
на лету, когда мой тестовый модуль в бегах. Является ли это возможным?
Обратите внимание, что у меня есть доступ к QQmlApplicationEngine
или любые файлы qml, такие как main.qml
, Однако я должен быть в состоянии создать dummy.qml
в ресурсах моего тестового проекта?
Я также думаю, что делает #include <QQmlApplicationEngine>
должен дать мне доступ к QQmlApplicationEngine
?
Как мне создать манекен QQuickItem
в коде C++ с некоторой допустимой шириной и высотой в моем модульном тесте, и передать его моему методу во время выполнения?
1 ответ
Самый простой способ изолировать QQuickItem
объект для тестирования будет использовать QQuickView
:
QQuickView * view = new QQuickView;
view->setSource(QUrl(QStringLiteral("qrc:/dummy.qml")));
QQuickItem * dummyItem = view->rootObject();
Из-за широкого спроса:
// dummy.qml
import QtQuick 2.0
Item {
width: 200
height: 200
}