Clion 搭建Qt projects

Qt projects

Qt is a cross-platform C++ framework for creating GUI applications. Qt uses its own build system, qmake, and also supports building with CMake starting from the version Qt4.

Qt是一款创建桌面程序的跨平台的C++框架。qmake是Qt自有的构建系统,从Qt4版本开始,Qt系统开始支持CMake进行构建。

A pure Qmake project can't be imported in CLion directly. However, when converted into CMake, it can be opened and managed as a regular CMake application. You can also create a CMake-based Qt project in CLion using the New Project wizard.

CLion无法直接引入由qmake创建的项目,但是可以打开从qmake转换成cmake的Qt项目。开发人员也可以通过CLion的工程向导创建基于CMake的Qt工程。

CMake-based Qt projects

For CMake version 3.0 and newer, Qt ships the modules that let CMake find and use Qt4 and Qt5 libraries. Take the following steps to configure CMakeLists.txt for your Qt project.

对于CMake 3.0及更新版本,CMake 查找Qt模块并使用 Qt4 和 Qt5 库。请按以下步骤为您的 Qt 项目配置 CMakeLists.txt。

CMakeLists.txt for a Qt project

Qt项目的CMakeList.txt文件

  • Add the find_package command to locate the required libraries and header files. For example:

 添加find_package命令定位查找所需的库文件和头文件,例如:

find_package(Qt5Widgets REQUIRED)

Then, use target_link_libraries to make your target dependent on these libraries and headers:

随后,使用target_link_libraries命令将你的目标绑定查找到的库文件和头文件。

target_link_libraries(helloworld Qt5::Widgets)
  • For find_package to perform successfully, CMake should be instructed on where to find the Qt installation.

      当find_package命令运行成功后,接下来给CMake配置Qt的安装配置。

One of the ways to do this is by setting the CMAKE_PREFIX_PATH variable. You can either pass it via -D in the CMake settings dialog or via the set command before find_package.

一种方式是通过给CMake设定CMAKE_PREFIX_PATH变量。这种设定方式既可以通过在CMake的设置对话框中传入“-D”或者在find_package命令之前通过set命令设置。

For example, in the case of MinGW on Windows:

例如,在Windows系统中设置MinGW:

set(CMAKE_PREFIX_PATH "C:\\Qt\\Qt5.14.0\\5.14.0\\mingw73_32\\")

或者

set(CMAKE_PREFIX_PATH "C:\\Qt\\Qt5.14.0\\5.14.0\\mingw73_32\\lib\\cmake\\")
  • If your project uses MOC, UIC, or RCC, add the following lines to enable automatic invocation of the corresponding compilers:

    如果项目中使用到MOC、UIC或者RCC,请添加以下命令启动相应的编译器:

set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
  • List all the .ui and .qrc files in the add_executable() command along with your .cpp sources:

   在add_executable()命令列出你的“.cpp”文件、“.ui”文件和“.qrc”文件。

add_executable(helloworldmain.cpp mainwindow.cppapplication.qrc
)

Below you can find the full CMakeLists.txt script for a simple "Hello, world" application:

下面列出了“Hello, world”程序所需的CMakeList.txt脚本:

cmake_minimum_required(VERSION 3.10)
project(Qt-CMake-HelloWorld)set(CMAKE_CXX_STANDARD 17)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_PREFIX_PATH "C:\\Qt\\Qt5.14.0\\5.14.0\\mingw73_32\\")find_package(Qt5Widgets REQUIRED)set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)add_executable(helloworld main.cpp mainwindow.cpp application.qrc)
target_link_libraries(helloworld Qt5::Widgets)

https://www.jetbrains.com/help/clion/qt-tutorial.html


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/134347.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探索ChatGPT在学术写作中的应用与心得

随着人工智能的迅猛发展,ChatGPT作为一种强大的自然语言处理模型,逐渐在学术界引起了广泛的关注。本文将探讨ChatGPT在学术写作中的应用,并分享使用ChatGPT进行学术写作时的一些经验和心得。 01 — ChatGPT在学术写作中的应用 1.文献综述和…

高速串行总线——SATA

SATA简介 SATA的全称是Serial Advanced Technology Attachment(串行高级技术附件,一种基于行业标准的串行硬件驱动器接口),它是一种电脑总线,主要功能是用作主板和大量存储设备(如硬盘及光盘驱动器)之间的数据传输 SA…

挑战100天 AI In LeetCode Day04(热题+面试经典150题)

挑战100天 AI In LeetCode Day04(热题面试经典150题) 一、LeetCode介绍二、LeetCode 热题 HOT 100-62.1 题目2.2 题解 三、面试经典 150 题-63.1 题目3.2 题解 一、LeetCode介绍 LeetCode是一个在线编程网站,提供各种算法和数据结构的题目&am…

基于飞浆NLP的BERT-finetuning新闻文本分类

目录 1.数据预处理 2.加载模型 3.批训练 4.准确率 1.数据预处理 导入所需库 import numpy as np from paddle.io import DataLoader,TensorDataset from paddlenlp.transformers import BertForSequenceClassification, BertTokenizer from sklearn.model_selection import tra…

Flink SQL Window TopN 详解

Window TopN 定义(⽀持 Streaming): Window TopN 是特殊的 TopN,返回结果是每⼀个窗⼝内的 N 个最⼩值或者最⼤值。 应⽤场景: TopN 会出现中间结果,出现回撤数据,Window TopN 不会出现回撤数据…

蓝桥杯每日一题2023.11.5

题目描述 方格分割 - 蓝桥云课 (lanqiao.cn) 题目分析 对于每个图我们可以从中间开始搜索,如果到达边界点就说明找到了一种对称的方法,我们可以直接对此进行答案记录每次进行回溯就会找到不同的图像,如果是一样的图像则算一种情况&#xff…

[Kettle] Excel输入

Excel文件采用表格的形式,数据显示直观,操作方便 Excel文件采用工作表存储数据,一个文件有多张不同名称的工作表,分别存放相同字段或不同字段的数据 数据源 物理成绩(Kettle数据集2).xls https://download.csdn.net/download/H…

AI智能公文写作助手“文山会海“

公文写作痛点 没思路,公文写作无从下手公文类型繁多,一时难以全面掌握公文内容组织难度大,不易清晰、有逻辑的进行表达时间紧任务急,往往需要在有限的时间内完成大量写作工作反复修改优化,需满足更多新要求&#xff0…

JavaScript+Flask 实现视频上传的简单demo

前言 需求说明 在网页上选择本地视频并上传到后端服务器后端接收到视频后存储到本地,然后进行处理 技术栈: 前端采用原生HTMLJavaScript 后端采用Flask框架 前端代码 操作步骤: 选中视频文件获取文件内容及文件名将文件内容和文件名封…

Linux学习之vim跳转到特定行数

参考的博客:《Vim跳到最后一行的方法》 《oeasy教您玩转vim - 14 - # 行头行尾》 《Linux:vim 中跳到首行和最后一行》 想要跳到特定行的话,可以在命令模式和正常模式进行跳转。要是对于vim的四种模式不太熟的话,可以到博客《Linu…

在 Python 中打印二叉树

文章目录 Python 中的二叉树树的遍历顺序中序遍历树先序遍历树后序遍历二叉树在Python中的实现使用 Python 打印整个二叉树代码分析本文将讨论二叉树以及我们如何使用它。 我们还将看到如何使用 Python 打印它。 我们将了解在处理二叉树时使用的术语。 我们还将研究使用 Pytho…

使用VSCODE链接Anaconda

打代码还是在VSCODE里得劲 所以得想个办法在VSCODE里运行py文件 一开始在插件商店寻找插件 但是没有发现什么有效果的 幸运的是VSCODE支持自己选择Python的解释器 打开VSCODE 按住CtrlShiftP 输入Select Interpreter 如果电脑已经安装上了Python的环境 VSCODE会默认选择普通…

C++auto 关键字

auto 关键字在 C 语言中就已经存在了,只不过在 C 语言中它的作用是声明自动变量,例如 auto int z 123 ; z 本来是局部变量,加上 auto 后变成了局部的自动变量,就是当前变量的生存周期是由编译器自动决定的&#xff0c…

Redis中的渐进式遍历-Scan命令

之前我们学习过遍历命令keys,而keys *是一次性的把整个redis中所有的key都获取到.在不知道当前redis中有多少key的情况下,这个操作是非常危险的,可能会一下子得到太多的key而阻塞redis服务器.从而使其他redis客户端卡顿. 通过渐进式遍历,就可以做到,既可以获取到所有的key,同时…

视频集中存储EasyCVR平台播放一段时间后出现黑屏是什么原因?该如何解决?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

零代码编程:用ChatGPT批量提取flash动画swf文件中的mp3

文件夹:C:\迅雷下载\有声绘本_flash[淘宝-珍奥下载]\有声绘本 flash,里面有多个flash文件,怎么转换成mp3文件呢? 可以使用swfextract工具从Flash动画中提取音频,下载地址是http://www.swftools.org/download.html,也…

Python学习-shutil模块和OS模块学习

shutil模块 针对文件的拷贝,删除,移动,压缩和解压操作 # 1.copyfileobj只能复制文件内容,无法复制权限#复制文件时,要选择自己有权限的目录执行操作,创建的文件会根据系统umask设定的参数来指定用户权限 s…

云计算和大数据技术

一、云计算技术的概述 云计算是一种基于互联网的计算模式,它将计算资源(包括硬件和软件)通过网络提供给用户,使用户能够方便地访问和使用这些资源。云计算技术可以分为三个层次:基础设施即服务 (IaaS),平台…

理解交叉熵(Cross Entropy)

交叉熵(Cross-Entropy)是一种用于衡量两个概率分布之间的距离或相似性的度量方法。在机器学习中,交叉熵通常用于损失函数,用于评估模型的预测结果与实际标签之间的差异。 在分类问题中,交叉熵损失函数通常用于多分类问…

项目构建工具maven的基本配置+idea 中配置 maven

👑 博主简介:知名开发工程师 👣 出没地点:北京 💊 2023年目标:成为一个大佬 ——————————————————————————————————————————— 版权声明:本文为原创文…