En esta página

Requisitos del objetivo de tiempo de ejecución de Qt para QNX

QNX Software Systems ofrece soluciones de software para la creación de dispositivos embebidos. Esto incluye la creación de imágenes de arranque QNX Neutrino RTOS de una manera muy flexible. Aunque QNX proporciona varios scripts de referencia para la creación de imágenes del SO, tarde o temprano necesitarás realizar cambios o puede que decidas crear una imagen del SO desde cero. Qt se basa en la existencia de varios componentes de terceros y servicios seleccionados del SO. Debido a esto, las imágenes de arranque de QNX Neutrino RTOS para un dispositivo de destino que ejecute Qt deben cumplir los requisitos enumerados en las siguientes secciones para garantizar que Qt funcione como se espera.

Subsistema gráfico de pantalla QNX

Antes de que cualquier aplicación Qt pueda ser iniciada, el subsistema gráfico de pantalla QNX (también llamado simplemente "Screen") debe estar ejecutándose. Screen consiste en un controlador y varias utilidades y servicios que son utilizados por Qt. Esto incluye también el procesamiento de eventos de ratón y teclado. Puedes asegurarte de que Screen está configurado y ejecutándose correctamente verificando que una aplicación gráfica, como gles2-gears, puede iniciarse y ejecutarse sin problemas.

La mayoría de los ejemplos recientes de scripts de construcción del SO en el SDP incluyen secciones con todos los componentes y comandos de inicio para la Pantalla. Puedes utilizarlos como referencia.

Soporte IPv6

La pila de red de Qt requiere que el soporte IPv6 esté habilitado, independientemente de si la red real utiliza IPv4 o IPv6.

Advertencia: io-pkt-v6-hc debe estar ejecutándose, no io-pkt-v4.

Dispositivo aleatorio /dev/random

Qt requiere que /dev/random esté presente y en funcionamiento. Inícialo antes de iniciar cualquier aplicación Qt o durante el arranque del sistema:

random -p
waitfor /dev/random

Registrador del sistema

QNX proporciona el marco de registro slog2 adaptado a las especificidades de los sistemas embebidos. Su mayor ventaja es un mejor rendimiento que la salida de texto a ficheros. Qt utiliza este marco por defecto para cualquier salida de registro a través de QDebug en QNX Neutrino RTOS. El servicio slog2 debe iniciarse durante el arranque del sistema. slog2 también depende de la existencia de la carpeta /tmp que también debe ser configurada, por ejemplo:

[type=link] /tmp=/dev/shmem
display_msg "Starting slogger2..."
slogger2 -U1001:1000 &
waitfor /dev/slog2

Variables de entorno

Hay un conjunto de variables de entorno que debes configurar al iniciar una aplicación Qt. La mayoría de ellas no son específicas de QNX Neutrino RTOS. Aún así se mencionan aquí, ya que conocerlas ahorra mucho tiempo en caso de problemas.

Nota: setconf y getconf son necesarios para acceder a las variables de entorno POSIX, especialmente para el nombre del host y la fecha y hora.

Qt runtime location (Ubicación del tiempo de ejecución de Qt)

Si no has compilado Qt con la variable de entorno RPATH establecida, puedes colocar los componentes de tiempo de ejecución de Qt en cualquier carpeta del sistema de archivos. Las siguientes variables de entorno deberían apuntar a ubicaciones válidas asumiendo que la instalación de Qt se encuentra en <Qt-install-path>:

  • LD_LIBRARY_PATH debe contener la ruta a las librerías Qt en <Qt-install-path>/lib.
  • QT_PLUGIN_PATH define dónde se encuentran los plug-ins de Qt. Debe establecerse en <Qt-install-path>/plugins.
  • QML2_IMPORT_PATH define dónde se encuentran los plug-ins de Qt Quick. Debe establecerse en <Qt-install-path>/qml.
  • Si Qt no utiliza fontconfig, debe proporcionar la ruta a las fuentes con QT_QPA_FONTDIR, o colocar las fuentes en <Qt-install-path>/lib/fonts que es la ubicación de fuentes por defecto.
  • Consulte QT_QPA_QNX_DISPLAY_CONFIG para conocer el número y orden de las pantallas/displays disponibles.

Tamaño físico de la pantalla

Qt necesita información sobre las dimensiones físicas de la pantalla conectada para determinar los valores DPI y así establecer los tamaños de fuente correctos. Normalmente, esta información es proporcionada por la Pantalla. En algunos casos puede aparecer un tamaño de pantalla inválido como 0mmx0mm. En tal caso Qt requiere una variable de entorno QQNX_PHYSICAL_SCREEN_SIZE establecida en los valores correspondientes para obtener la información requerida. Si las aplicaciones Qt salen con un mensaje de error diciendo que no se ha podido determinar el tamaño físico de la pantalla, establece la variable así antes de iniciar la aplicación Qt:

export QQNX_PHYSICAL_SCREEN_SIZE=150,100

para informar a Qt que la pantalla tiene una anchura de 150mm y una altura de 100mm en este caso particular. El tamaño físico de la pantalla se mide en milímetros (mm) y debe corresponder al tamaño físico real de la pantalla en la configuración final.

Resolución de problemas en el primer inicio de una aplicación Qt

El único inconveniente de la flexibilidad proporcionada por QNX Neutrino RTOS es el riesgo de que el entorno de ejecución sea ligeramente diferente en su objetivo de lo esperado por Qt. Esta es una razón común por la que una aplicación Qt en un nuevo objetivo falla al iniciarse. Unas pocas variables de entorno genéricas pueden ayudar a localizar la causa raíz de los problemas:

  • Establecer QT_DEBUG_PLUGINS a 1 ayuda a ver por qué el plugin QPA no se puede cargar.
  • Establecer LD_DEBUG a 1 ayuda a ver dónde y cómo se cargan las bibliotecas compartidas. Esto puede ser usado en combinación con QT_DEBUG_PLUGINS cuando un plugin falla al cargar porque no puede cargar otras bibliotecas compartidas.
  • Establecer QT_LOGGING_TO_CONSOLE forzará el envío de todos los mensajes de registro a stderr en lugar de slog2. Esto es útil para analizar problemas de arranque de la aplicación, ya que no es necesario utilizar otra herramienta para ver los mensajes.

Qt normalmente utiliza fontconfig para proporcionar acceso a systemfonts. Si no se ha creado antes una caché de fuentes, se creará al iniciar la primera aplicación Qt. Dependiendo de la configuración, puede llevar mucho tiempo y retrasar significativamente el arranque de las aplicaciones. Si no se necesita, fontconfig puede desactivarse con -DFEATURE_fontconfig=OFF en el momento de la configuración.

Uso de QCursor en la plataforma QNX

QNX soporta cambiar la forma del cursor para una ventana, pero necesitará desplegar y especificar las imágenes asociadas con las formas que desea utilizar a través del archivo de configuración de Pantalla, graphics.conf. Consulte el parámetro cursor-type de la subsección Configurar pantalla para obtener más detalles. Además del cursor predeterminado, QNX no proporciona cursores adicionales. Por lo tanto, cualquier gráfico de cursor adicional debe proporcionarse manualmente en formato de mapa de bits. La siguiente tabla muestra el nombre del cursor utilizado en graphics.conf para cada valor de Qt::CursorShape.

Qt::CursorShape valorNombre de configuración de pantalla de QNX
Qt::ArrowCursorflecha
Qt::CrossCursorcruz
Qt::WaitCursorespera
Qt::IBeamCursoribeam
Qt::PointingHandCursormano
Qt::OpenHandCursoragarrar
Qt::ClosedHandCursoragarrar
Qt::DragMoveCursormover
Todas las demás formas de cursorflecha (por defecto)

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.