24,857
社区成员




cmake_minimum_required(VERSION 3.5)
project(Manager LANGUAGES CXX)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
#查找需要的Qt库文件,最好每一个库都要写,Qt也会根据依赖关系自动添加
find_package(Qt5Widgets)
find_package(Qt5Core)
find_package(Qt5Gui)
find_package(Qt5LinguistTools)
#查找当前文件夹中的所有源代码文件,也可以通过Set命令将所有文件设置为一个变量
FILE(GLOB SRC_FILES "./*.cpp")
#同理,查找当前文件夹中所有的头文件
FILE(GLOB HEAD_FILES "./*.h")
FILE(GLOB TS_FILES "./*.ts")
#同理,查找当前文件夹中所有的ui文件
set(UI_FILES
manager.ui
setting.ui)
#翻译
#set(TS_FILES
# manager_eng.ts
# manager_cht.ts
# manager_chs.ts)
qt5_create_translation(QM_FILES
${CMAKE_SOURCE_DIR}
${TS_FILES})
#set_source_files_properties(${TS_FILES} PROPERTIES OUTPUT_LOCATION "translate")
#qt5_add_translation(QM_FILES ${TS_FILES})
#通过Ui文件生成对应的头文件,一定要添加
qt5_wrap_ui(WRAP_FILES ${UI_FILES})
#添加资源文件
#set(SOURCES resources.qrc)
#创建工程文件
add_executable(Manager
# ${SOURCES}
${TS_FILES}
${QM_FILES}
${WRAP_FILES}
${UI_FILES}
${HEAD_FILES}
${SRC_FILES}
)
#添加QT5依赖项
target_link_libraries(${PROJECT_NAME}
Qt5::Core
Qt5::Gui
Qt5::Widgets)
add_executable 中只需要${QM_FILES}即ts文件编译后生成的qm文件所在路径即可。程序运行是不需要ts文件的,只需要qm文件;
#根据输入的参数生成.ts(translation source)文件,ts文件同时会被转换成.qm文件,并将qm文件路径放在QM_FILES里面。
#输入的参数是路径,可以是文件也可以是目录。如果后缀带有.ts将会被创建或者更新。其他的文件或目录会被lupdate认为是接收,用于更新ts文件。
qt5_create_translation(QM_FILES
${CMAKE_CURRENT_SOURCE_DIR}
${TS_FILE}
)