一文详解QT环境搭建:Windows平台Qt安装配置指南
随着软件开发技术的不断进步,跨平台应用程序的需求日益增长,开发者们面临着如何在不同操作系统之间保持代码的一致性和效率的问题。Qt
作为一个成熟的跨平台C++框架
,在这方面提供了卓越的支持,不仅简化了GUI应用程序的创建过程
,而且通过其丰富的库
和工具集
,极大地提高了开发效率。
本文专为那些希望在Windows平台上开始使用Qt进行应用开发的新手而设计。这里我将详细介绍Qt的基本概念、安装步骤、环境配置以及如何创建一个简单的Qt项目。
一、Qt简介:
Qt 是一个跨平台的应用程序框架,主要用于开发图形用户界面(GUI)软件
。它使用C++语言编写
,并且提供了一套丰富的类库和工具来简化GUI应用程序的开发。除了GUI编程之外,Qt还支持网络通信
、数据库访问
、XML处理
等多种功能,使得开发者能够创建复杂的企业级应用。
- 跨平台:Qt允许一次编写代码,在多个操作系统上运行,包括Windows、macOS、Linux、Android、iOS以及嵌入式系统如QNX、VxWorks等。
- 强大的GUI库:提供了大量的控件用于构建现代、响应式的用户界面,例如按钮、菜单、对话框、表格视图等。同时,也支持自定义控件以满足特定需求。
- 信号与槽机制:这是Qt特有的面向对象通信机制,极大地简化了组件之间的交互逻辑。
- 国际化支持:内置对多国语言的支持,方便制作多语言版本的应用程序。
- 集成开发环境(IDE):Qt Creator是一个专门为Qt设计的IDE,它集成了编辑器、调试器、项目管理等功能,提高了开发效率。
- 文档与社区资源丰富:官方文档详尽,社区活跃,遇到问题时容易找到解决方案。
二、Qt安装
- 首先,访问Qt官方网站https://www.qt.io/zh-cn/,并点击右上角的Download.Try.进入下载页面。
- 点击
选择开源版
,以获取免费版本的Qt
- 下拉,点击
Download the Qt Online Installer
- 从列出的选项中选择适合您系统的最新版本进行下载。
- 下载完成后,找到下载器所在的文件夹。然后在
文件夹下
,通过如下命令行运行如下命令以唤起安装程序
。为了加速下载过程,建议使用国内镜像源。
// 使用 中国科学技术大学镜像
.\qt-online-installer-windows-x64-4.8.1.exe --mirror https://mirrors.ustc.edu.cn/qtproject/
// 使用 清华大学镜像
.\qt-online-installer-windows-x64-4.8.1.exe --mirror https://mirrors.tuna.tsinghua.edu.cn/qt/
- 如果您还没有Qt账号,请先注册一个。登录后,按照维护工具提供的界面指引完成安装过程。
根据自身情况,选择我是个人账户,不为任何公司使用。
- 按照维护工具提供的界面指引,
安装所有必需的Qt版本及组件
。请参照以下三张图核对组件安装情况
。
- 完成安装后,可以通过Windows的搜索功能启动Qt Creator集成开发环境。
三、Qt环境变量
为了保证Qt工具链能够在命令行中被正确识别,请确保您的系统环境变量中包含了Qt的安装路径。这一步骤对于后续的项目创建至关重要。
四、Qt Creator创建项目
打开Qt Creator后,按照步骤:选择创建项目——>Application(Qt)
——>Qt Widgets Application
创建项目:
填写要创建的项目名称,创建项目文件路径:
接下来,选择CMake作为构建系统。CMake是一种跨平台的编译系统生成器,能够简化多平台项目的构建过程。
接下来,编译运行创建的项目,如果顺利弹出UI页面,则表明项目构建成功。
五、CMakeLists.txt 注释
CMakeLists.txt
是CMake使用的配置文件,用于定义如何构建项目。以下是一些关键指令及其作用:
cmake_minimum_required(VERSION 3.16)
:指定所需的最低CMake版本。project(QtCreatorDemo VERSION 0.1 LANGUAGES CXX)
:定义项目名称、版本号以及使用的编程语言。set(CMAKE_AUTOUIC ON)
、set(CMAKE_AUTOMOC ON)
和set(CMAKE_AUTORCC ON)
:启用自动处理UI文件、MOC代码生成和资源编译的功能。find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets)
:查找Qt库,并确保包含Widgets模块。add_executable()
:定义可执行文件的构建规则。target_link_libraries()
:链接目标需要的库。install()
:定义安装规则,包括安装目录等信息。
为QtCreator创建的项目中CMakeList添加了几行注释,这里也做一下记录。
# 设置CMake的最低版本要求为3.16
cmake_minimum_required(VERSION 3.16)
# 定义项目名称为QtCreatorDemo,版本号为0.1,使用的编程语言为C++
project(QtCreatorDemo VERSION 0.1 LANGUAGES CXX)
# 开启自动处理UI文件的功能,让CMake自动将.ui文件转换为对应的C++代码
set(CMAKE_AUTOUIC ON)
# 开启自动处理MOC(Meta-Object Compiler)的功能,用于处理Qt的信号槽机制相关代码生成
set(CMAKE_AUTOMOC ON)
# 开启自动处理RCC(Resource Compiler)的功能,用于处理资源文件(如图片、样式表等)
set(CMAKE_AUTORCC ON)
# 设置C++标准为C++17
set(CMAKE_CXX_STANDARD 17)
# 要求必须使用指定的C++标准,若不满足则构建失败
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# 查找Qt库,优先查找Qt6,若未找到则查找Qt5,且必须找到包含Widgets模块的Qt库
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets)
# 根据找到的Qt版本的主版本号,再次查找对应的Qt库,确保找到包含Widgets模块的库
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets)
# 定义项目源文件列表,包含主函数源文件、主窗口源文件、主窗口头文件和主窗口UI文件
set(PROJECT_SOURCES
main.cpp
mainwindow.cpp
mainwindow.h
mainwindow.ui
)
# 判断找到的Qt版本的主版本号是否大于等于6
if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
# 使用Qt 6的函数创建可执行文件,MANUAL_FINALIZATION表示手动调用qt_finalize_executable函数来完成一些最终的设置
qt_add_executable(QtCreatorDemo
MANUAL_FINALIZATION
${PROJECT_SOURCES}
)
# Define target properties for Android with Qt 6 as:
# set_property(TARGET QtCreatorDemo APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR
# ${CMAKE_CURRENT_SOURCE_DIR}/android)
# For more information, see https://doc.qt.io/qt-6/qt-add-executable.html#target-creation
else()
if(ANDROID)
add_library(QtCreatorDemo SHARED
${PROJECT_SOURCES}
)
# Define properties for Android with Qt 5 after find_package() calls as:
# set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android")
# 在非Android平台且使用Qt 5时,创建一个可执行文件
else()
add_executable(QtCreatorDemo
${PROJECT_SOURCES}
)
endif()
endif()
# 将Qt的Widgets模块链接到目标可执行文件或库上,PRIVATE表示链接信息仅对当前目标可见
target_link_libraries(QtCreatorDemo PRIVATE Qt${QT_VERSION_MAJOR}::Widgets)
# Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1.
# If you are developing for iOS or macOS you should consider setting an
# explicit, fixed bundle identifier manually though.
if(${QT_VERSION} VERSION_LESS 6.1.0)
set(BUNDLE_ID_OPTION MACOSX_BUNDLE_GUI_IDENTIFIER com.example.QtCreatorDemo)
endif()
set_target_properties(QtCreatorDemo PROPERTIES
${BUNDLE_ID_OPTION}
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
MACOSX_BUNDLE TRUE
WIN32_EXECUTABLE TRUE
)
# 包含GNUInstallDirs模块,用于设置标准的安装目录
include(GNUInstallDirs)
install(TARGETS QtCreatorDemo
BUNDLE DESTINATION .
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
# 定义安装规则,将目标可执行文件、库等安装到指定目录
if(QT_VERSION_MAJOR EQUAL 6)
qt_finalize_executable(QtCreatorDemo)
endif()