欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 旅游 > cmake结合qt开发界面程序实例

cmake结合qt开发界面程序实例

2025/3/21 5:40:47 来源:https://blog.csdn.net/chujisnail/article/details/146337311  浏览:    关键词:cmake结合qt开发界面程序实例

在使用 CMake 构建 Qt 界面应用程序时,你需要设置 CMakeLists.txt 文件来指定项目配置、源文件、库依赖等。以下是一个简单的示例,展示了如何创建一个包含 Qt 界面(使用 QWidget)的 Qt 项目,并使用 CMake 进行构建。

1. 创建项目目录结构

首先,创建一个项目目录结构,例如:

MyQtApp/
├── CMakeLists.txt
├── main.cpp
├── mainwindow.cpp
├── mainwindow.h
├── mainwindow.ui
└── resources/└── MyQtApp.qrc

2. 编写 CMakeLists.txt

MyQtApp/ 目录下创建 CMakeLists.txt 文件,内容如下:

cmake_minimum_required(VERSION 3.15) # 最低支持版本
project(MyApp VERSION 0.1 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 11)          # 设置标准为C++17
set(CMAKE_AUTOMOC ON)               # 自动处理Moc(Meta Object Compiler)
set(CMAKE_AUTOUIC ON)              # 自动生成ui对应的头文件(.h)
set(CMAKE_AUTORCC ON)              # 如果需要资源文件则启用Rcc(Resource Compiler)find_package(Qt5 COMPONENTS Core Gui Widgets REQUIRED)  # 查找所需模块#生成的可执行文件可双击运行
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -no-pie")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -no-pie")# Specify source files
set(SOURCESmain.cppmainwindow.cpp
)
set(HEADERSmainwindow.h
)
set(UISmainwindow.ui
)
# Add executable
add_executable(${PROJECT_NAME} ${SOURCES} ${HEADERS} ${UIS} ${RESOURCES_RCC})target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core Qt5::Gui Qt5::Widgets) # 连接库

3. 编写源文件

main.cpp、mainwindow.h、mainwindow.cpp、mainwindow.ui 均使用QT默认生成的文件,可参考编写;

resources/MyQtApp.qrc

如果不需要资源文件,可以省略这部分。如果需要,可以创建一个简单的资源文件,例如:

<RCC><qresource prefix="/"><file>images/logo.png</file></qresource>
</RCC>

4. 构建和运行

打开终端,找到项目目录,即CMakeLists.txt所在目录,然后运行以下命令:

mkdir build
cd build            # 创建build目录用于存放中间产物等信息避免污染原代码树
rm -rf *
cmake ..                          # 调用cmake解析配置初始化构建环境
make                              # 或者'msvc'等相关IDE指定操作实际完成编译链接全过程
cd ..
./build/MyApp                           # 启动应用程序检查效果是否正常工作

注意事项

  1. Qt 版本:确保你安装了 Qt5,并且 qt5-default(在 Debian/Ubuntu 上)或相应的开发包已经安装。
  2. CMake 版本:确保你使用的 CMake 版本支持 find_package 和 Qt5 的模块。
  3. Qt Designer:你可以使用 Qt Designer 创建复杂的 UI 文件,并将其保存到 mainwindow.ui 中。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词