【零基础学QT】【052】CLion完美搭建Qt开发环境

什么是CLion

CLion是JetBrain公司开发的一款C语言开发环境,JetBrain比较出名的有:开发Java的Idea,开发网页的WebStorm,开发Android的AndroidStudio,JetBrain系列是当之无愧的宇宙最优秀IDE

CLion在纯粹的WIndows开发上,可能功能没有Visual Studio那么完善强大,毕竟Visual Studio是微软自己的,有着强大的背景和大量的用户帮助其不断完善,但是在外观,易用性,细节方面,JetBrain系列都远远超过了Visual Studio

为什么选择CLion

Qt并不能算是WIndows开发,它只是可以用来开发Windows桌面软件,在生态和工具链方面,它更像是Linux程式开发,整个Qt框架使用的都是标准的C++语法和标准的GNU编译工具,移植性很好,很容易迁移到CLion上面,基本没什么负面问题遗留

CLion相比Qt Creator和Visual Studio有以下优势:

  • 界面美观,不管是窗口风格,还是图标,字体,布局,排版,都非常漂亮
  • 功能丰富,设计清晰,不会像Qt Creator一样缺少很多功能,也不会像Visual Studio一样,功能很多但看起来很乱
  • 细节做得好,搜索,控制台等功能,排版非常清晰,不会看着人头晕,软件设置里面功能划分,细节预览,做得非常细致
  • 自动提示补全功能很完美,什么都可以提示,而且流畅精准
  • 编译流畅自然,不像Qt Creator,随便加个文件,改个文件名,给人的感觉都要重新编译半天
  • 项目结构清晰,除了一个cmake配置文件,剩下都是源码和资源文件,没有多余的乱七八糟的东西

CLion的不足之处

由于CLion不像Idea,是JetBrain的主打产品,所以仅支持标准的C语言工具链,并没有为Qt这样的开发框架提供支持,所以也就不能对ui文件和qml文件进行排版,也不能以拖拽的方式添加控件

好在CLion提供了外部工具调用功能,它可以调用Qt Creator来打开界面布局文件,由于只是打开单个文件,不用编译项目,速度也非常快,听起来有点麻烦,但实际用起来还是很自然的

下面我们开始讲解如何在CLion中搭建Qt开发环境,由于讲得毕竟细,篇幅会长点
其实大家看完就会觉得,其实非常简单,学一次就会
唯一难点是cmake脚本的编写,不过我都已经写好模版和注释了,大家直接抄就行了

创建C++ Executable项目
在这里插入图片描述
配置MinGW编译环境

我们只需设置MinGW所在目录,如果目录正确,剩下可以自动检测到
在这里插入图片描述
将MinGW路径添加到系统环境变量

MinGW不但在编译时需要,有些库在运行时还是需要,将MinGW路径添加到系统环境变量中,这样程序就能自动找到这些库
注意,设置完系统环境变量后要重启CLion,CLion有个缺陷就是只会在启动时加载系统环境变量,不会在编译程序时自动刷新
如果手动执行exe文件没问题,点击运行按钮却报错,可能就是这个原因造成的
在这里插入图片描述
注意到,Qt下面有两个MinGW文件夹,它们里面的内容是不一样的
qt/tools下面放的是MinGW的编译工具
qt/version下面放的是Qt通过MinGW编译Windows程序所需的额外依赖库

编写Qt代码

这里我们高级一点,直接用Qml代码来进行测试
我们的项目只有三个文件,一个qml文件,一个qrc文件,一个cpp文件
在这里插入图片描述


	//main.qml

	import QtQuick 2.12
	import QtQuick.Controls 2.12
	
	ApplicationWindow {
	    width: 800
	    height: 600
	    color: "transparent"
	    background: null
	
	    Rectangle {
	        id: root
	        anchors.fill: parent
	        border.color: "lightblue"
	        border.width: 2
	        color: "#22FFFF00"
	    }
	}


	//qml.qrc

	<RCC>
	    <qresource prefix="/">
	        <file>main.qml</file>
	    </qresource>
	</RCC>


	//main.cpp

	#include <QGuiApplication>
	#include <QQmlApplicationEngine>
	#include <QQmlComponent>
	#include <QWindow>
	
	int main(int argc, char *argv[]) {
	    QGuiApplication  app(argc, argv);
	
	    QQmlComponent component(new QQmlApplicationEngine(), "qrc:/main.qml");
	    QWindow *window = (QWindow*)component.create();
	    window->show();
	
	    return app.exec();
	}

编写cmake脚本

CLion能运行Qt项目,关键就在于cmake,cmake将我们的源码同Qt每个模块的make连接起来,最终就完全了和Qt Creator一样的编译工作


	//CMakeLists.txt

	#设置cmake最低版本要求
	cmake_minimum_required(VERSION 3.0)
	
	#设置项目名
	project(clion-qt)
	
	#指定c++版本
	set(CMAKE_CXX_STANDARD 17)
	
	#包含当前目录
	set(CMAKE_INCLUDE_CURRENT_DIR ON)
	
	#调用moc,uic,rcc编译qt
	set(CMAKE_AUTOMOC ON)
	set(CMAKE_AUTOUIC ON)
	set(CMAKE_AUTORCC ON)
	
	#设置qt的cmake目录
	#这个目录包含了所有qt模块编译所需的cmake文件
	set(CMAKE_PREFIX_PATH D:/dev/qt/5.13.0/mingw73_64/lib)
	
	#从上面的目录下寻找对应的qt模块
	find_package(Qt5Core)
	find_package(Qt5Quick)
	
	#包含需要编译的文件
	set(SOURCE_FILES main.cpp)
	set(RESOURCE_FILES main.qml)
	set(QRC_FILES qml.qrc)
	add_executable(clion-qt WIN32 ${SOURCE_FILES} ${RESOURCE_FILES} ${QRC_FILES})
	
	#包括指定的qt模块
	#这个功能相当于qt creator中的QT += <module_name>
	qt5_use_modules(clion-qt Core Quick)
	
	#把指定的qt模块链接进程序
	target_link_libraries(clion-qt Qt5::Core Qt5::Quick)

运行程序

编写完cmake脚本后,IDE会提示我们重新加载脚本,我们重载cmake后,点击绿色运行按钮,就可以运行程序了
在这里插入图片描述

调用外部工具编写Qml

如果对排版没什么要求,我们可以在CLion中以纯文本的方式编写Qml
确实喜欢自动排版和颜色高亮,还有属性提示的,可以调用Qt Creator来编写Qml
在这里插入图片描述
在这里插入图片描述

发布了442 篇原创文章 · 获赞 45 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/u013718730/article/details/104238649