qt使用cmake,将add_executable内的${SOURCES} ${HEADERS} ${UI} ${PROJECT_SOURCES}这些目录,在编译完成后于qt上分开显示
时间: 2023-09-04 11:11:09 浏览: 99
可以在 `CMakeLists.txt` 中使用 `AUTOUIC`, `AUTOMOC` 和 `AUTORCC` 宏来自动处理 `.ui`, `.moc` 和 `.qrc` 文件,然后使用 `target_sources` 命令将这些文件添加到可执行文件中。这样在 Qt Creator 中编译完成后,可以看到 `Forms`, `Headers`, `Sources`, `Generated Files` 和 `Resources` 五个选项卡,分别显示不同类型的文件。
以下是一个示例 `CMakeLists.txt` 文件:
```
cmake_minimum_required(VERSION 3.5)
project(MyApp)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
find_package(Qt5 COMPONENTS Core Widgets REQUIRED)
set(SOURCES
main.cpp
MyWidget.cpp
)
set(HEADERS
MyWidget.h
)
set(UI
MyWidget.ui
)
set(PROJECT_SOURCES
resources.qrc
)
add_executable(MyApp ${SOURCES} ${HEADERS} ${UI} ${PROJECT_SOURCES})
target_link_libraries(MyApp Qt5::Core Qt5::Widgets)
```
其中:
- `set(CMAKE_AUTOMOC ON)` 使 `CMake` 自动处理 `moc` 文件。
- `set(CMAKE_AUTORCC ON)` 使 `CMake` 自动处理 `qrc` 文件。
- `set(CMAKE_AUTOUIC ON)` 使 `CMake` 自动处理 `ui` 文件。
- `find_package(Qt5 COMPONENTS Core Widgets REQUIRED)` 告诉 `CMake` 使用 `Qt5` 的 `Core` 和 `Widgets` 模块。
- `target_link_libraries(MyApp Qt5::Core Qt5::Widgets)` 链接 `MyApp` 可执行文件与 `Qt5` 的 `Core` 和 `Widgets` 模块。
使用以上 `CMakeLists.txt` 文件编译项目后,在 Qt Creator 中打开可执行文件所在的目录,可以看到 `MyApp` 可执行文件和 `Forms`, `Headers`, `Sources`, `Generated Files` 和 `Resources` 五个选项卡。`Forms` 选项卡显示 `MyWidget.ui` 文件,`Headers` 选项卡显示 `MyWidget.h` 文件,`Sources` 选项卡显示 `main.cpp` 和 `MyWidget.cpp` 文件,`Generated Files` 选项卡显示由 `CMake` 自动生成的 `.moc` 和 `.ui.h` 文件,`Resources` 选项卡显示 `resources.qrc` 文件。
阅读全文