es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo generar archivos fuente de UI a partir de una lista de archivos UI

Estoy realizando la portabilidad de un proyecto legado C++ + Qt a CMake y como primer paso, no quiero modificar el árbol de proyecto original para que el proyecto CMake se pueda instalar simplemente para extender el proyecto original.

Sin embargo, el árbol de proyecto original almacena archivos UI en una carpeta específica separada de todos los archivos fuente y de cabecera.

He intentado configurar CMAKE_AUTOUIC_SEARCH_PATHS para que apunte a la carpeta UI, como se menciona en esta pregunta anterior, y también pasar la lista de archivos UI a qt_wrap_ui. Sin embargo, ninguno de estos trucos tuvo efecto, y nunca pude lograr que el proyecto CMake genere los archivos fuente ui_.

¿Alguien sabe si hay alguna manera de conseguir que CMake genere de manera confiable archivos fuente Ui de Qt almacenados en cualquier carpeta arbitraria dentro del árbol del proyecto?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en C++, Qt, CMake y Qt5, sugeriría el siguiente enfoque para portar un proyecto legado de C++ + Qt a CMake sin necesidad de modificar el árbol del proyecto original:

    1. Crea un nuevo directorio de proyecto de CMake fuera del árbol de proyecto original.
    2. Copia todos los archivos de origen y cabecera necesarios del árbol de proyecto original al nuevo directorio de proyecto de CMake.

    3. Crea una nueva carpeta en el directorio del proyecto de CMake para almacenar los archivos UI.

    4. Copia todos los archivos UI de la carpeta UI del árbol de proyecto original a la nueva carpeta de UI en el directorio del proyecto CMake.

    5. En el archivo CMakeLists.txt, establece la variable CMAKE_AUTOUIC_SEARCH_PATHS para que apunte a la nueva carpeta de UI:

    set(CMAKE_AUTOUIC_SEARCH_PATHS "${CMAKE_CURRENT_SOURCE_DIR}/ui")
    
    1. Usa el comando qt5_wrap_ui para generar los archivos fuente UI:
    qt5_wrap_ui(UI_FILES ${CMAKE_CURRENT_SOURCE_DIR}/ui/*.ui)
    
    1. Agrega los archivos fuente UI generados al ejecutable/biblioteca objetivo:
    add_executable(MyProject ${SOURCE_FILES} ${HEADER_FILES} ${UI_FILES})
    

    Siguiendo este enfoque, puedes mantener intacto el árbol del proyecto original y crear un parche plug-and-play que extienda el proyecto original con el nuevo directorio de proyecto de CMake. Además, este enfoque debería generar confiablemente los archivos fuente a partir de los archivos UI de Qt almacenados en cualquier carpeta arbitraria dentro del árbol del proyecto.

Comments are closed.