2010-10-11 14 views
8

Estoy creando una aplicación con tecnologías de interfaz de usuario mixtas (principalmente C++ con algunos componentes QML incluidos).¿Cuál es la forma preferida de incluir fuentes QML en la creación de tu aplicación?

Supongamos que tengo un elemento de QML que quiero mostrar el interior de un utilizando la sintaxis QDeclarativeView así: foobar.qml

view = new QDeclarativeView(QUrl::fromLocalFile("foobar.qml")); 

he añadido a mi proyecto en Qt Creator que agrega automáticamente esta línea al. Pro archivo:

OTHER_FILES += \ 
    foobar.qml 

Ahora, se esperaría que incluye el archivo en el proyecto de dar a entender que se debe copiar en la carpeta de compilación, pero no es así, y me sale un error por perder en foobar.qml la carpeta de compilación cuando ejecuto la aplicación. No me gustaría agregar pasos de compilación personalizados solo para copiar fuentes QML, entonces ¿hay alguna forma "de facto" de hacer esto?

Respuesta

7

Una solución obvia sería incluir la fuente QML a través de Qt's resource system. Esto se insinúa en la página del documento sobre deploying QML based applications.

EDITAR: Aquí está el complete solution. Debería aprender a RTFM.

+0

Esto es lo que hago en mi aplicación. Básicamente algo como 'view = new QDeclarativeView (QUrl (" qrc: /qml/scene.qml "));' – Dan

+1

Sí, los recursos serían el camino correcto a seguir. A menos que la aplicación viva en un entorno protegido, o no le importa, en ese caso puede enviarse uno al lado del otro. En Mac Bundles normalmente los pondría dentro de la carpeta de recursos del paquete –

3

¿Utiliza versiones de sombra? Si es así, la aplicación se compila en un directorio paralelo al código fuente. Para probar, puede cambiar el directorio de trabajo en Qt Creator (Proyectos en la barra izquierda, luego Ejecución de su objetivo de compilación). Usar recursos parece a prueba de errores, pero requiere una reconstrucción cada vez que se cambian los recursos.

Cuestiones relacionadas