如何基于QT库进行一个helloworld?
QT 库是一个可以写界面的库,如果将其引入 cmake 项目中?
1、https://doc.qt.io/qt-5/cmake-manual.html
2、https://zhuanlan.zhihu.com/p/617938095?utm_id=0
从 find_package 开始查找 Qt 附带的库和头文件。 然后,您可以通过 target_link_libraries 命令使用这些库和头文件来构建基于 Qt 的库和应用程序。
# Build a GUI executable
# To build a helloworld GUI executable, you need the following:
cmake_minimum_required(VERSION 3.1.0)
project(helloworld VERSION 1.0.0 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
if(CMAKE_VERSION VERSION_LESS "3.7.0")
set(CMAKE_INCLUDE_CURRENT_DIR ON)
endif()
find_package(Qt5 COMPONENTS Widgets REQUIRED)
add_executable(helloworld
mainwindow.ui
mainwindow.cpp
main.cpp
resources.qrc
)
target_link_libraries(helloworld Qt5::Widgets)
CMAKE_AUTOMOC 设置在需要时自动运行 moc。 有关更多详细信息,请参阅 CMake AUTOMOC 文档。这是Cmake 自动处理QT ui的代码。
SET(CMAKE_AUTOMOC ON)
SET(CMAKE_AUTOUIC ON)
SET(CMAKE_AUTORCC ON)
如果不开启此项目,会导致:
SET(CMAKE_CXX_STANDARD 11)
SET(CMAKE_INCLUDE_CURRENT_DIR ON)
1、将 CMAKE_PREFIX_PATH 环境变量设置为 Qt 5 安装前缀。 这是推荐的方式。
2、将 CMake 缓存中的 Qt5_DIR 设置为 Qt5Config.cmake 文件的位置。
# * 首先是CMAKE_PREFIX_PATH,对应各个模块的cmake文件路径,其次FIND_PACKAGE才能生效
SET(CMAKE_PREFIX_PATH /lib/cmake)
FIND_PACKAGE(Qt5 COMPONENTS Core Xml Sql Gui Widgets REQUIRED)
加载的每个 Qt 模块都定义一个 CMake 库目标。 目标名称以 Qt5:: 开头,后跟模块名称。 例如:Qt5::Core、Qt5::Gui。 将库目标的名称传递给 target_link_libraries 以使用相应的库。
target_link_libraries( emptyApp
Qt5::Widgets
)
作为示例,基于cpp17进行了初始化项目供大家参考。
https://gitee.com/hiyanyx/qt5.14-cpp_-empty_-project
(正文完)