// H-QML — reproducer del hito QML (ADR 0011, Capa 1). Carga QML inline (Window + Text vía QtQuick), // verifica que el engine instancia el árbol de objetos y corre el event loop. Compilado contra // qtbase+qtdeclarative sellados (dinámico/musl/zig-cc) y corrido con QT_QPA_PLATFORM=offscreen prueba // end-to-end que el motor QML/QtQuick — el corazón de Plasma — carga e instancia una escena. #include #include #include #include int main(int argc, char** argv) { QGuiApplication app(argc, argv); QQmlApplicationEngine engine; const char* qml = "import QtQuick\n" "Window { visible: true; width: 320; height: 200; color: \"#222\"\n" " Text { anchors.centerIn: parent; color: \"white\"; text: \"Hammer KDE — H-QML OK\" } }"; engine.loadData(QByteArray(qml)); if (engine.rootObjects().isEmpty()) { std::printf("H-QML: FALLO — el engine no instanció el árbol QML\n"); return 2; } std::printf("H-QML: QML instanciado (Window+Text via QtQuick); plataforma=%s\n", app.platformName().toUtf8().constData()); QTimer::singleShot(150, &app, &QGuiApplication::quit); int rc = app.exec(); std::printf("H-QML: event loop terminó rc=%d\n", rc); return rc; }