Linux下在qtcreator中创建qt程序
目录
1、新建项目
2、单工程项目创建
3、多工程项目创建
4、添加子工程(基于多工程目录结构)
5、 .pro文件
1、新建项目
切换到“编辑”界面,点击菜单栏中的“文件”-“新建文件或项目”

2、单工程项目创建
只有一个工程的项目,新建模板时就只用在“项目”-“Application”中选,最右边的一栏有该模板的解释说明。按照需求创建对应的应用程序,在此我们创建一个最常用的带UI的qt应用程序作为示范。

选择“Qt Widget Application”,点击“Choose”按钮,进行创建。设置项目名称与项目路径,如图所示。设置完成后,点击“下一步”。

因为我们使用了集成安装包,QtCreator的环境都已经自动安装好了,不用配置Kit,可以直接点击下一步。如果在当前页面“下一步”按钮被禁用了,则代表需要配置Kit。详细配置可以看该章节第四点。

配置类信息,设置类名与编译文件等的名称,点击下一步。注:建议类名与头文件、源文件、ui文件的名称与大小写保持一致。如图所示。

项目建立完成。该界面可以查看即将生成的所有文件与路径。因为是单工程项目,不需要配置“作为子项目添加到项目中”;“添加到版本控制系统”,如果有需要可以选择。注:.pro文件是qt的配置文件。

3、多工程项目创建
要创建一个多工程的项目,首先要建一个总的项目文件夹,作为根项目。
“文件”-“新建文件或项目”-“其他项目”-“子目录项目”-“Choose”。可以看到右边选中“子目录项目”后,右边的解释。

设置项目路径与总配置文件名称。

点击下一步可以看到即将生成的目录,该目录只生成一个.pro,作为总配置文件。

点击“完成&添加子项目”,对子项目进行添加,步骤与创建单项目目录步骤基本一致,唯一不同的是需要配置“汇总”-“作为子项目添加到项目中”,选择刚才创建的根项目,点击“完成”即可。

创建成功后,目录结构如图所示。可以看到总项目目录“MulPrj”下存在一个子项目目录“Projrct_1”,“Project_1”下存在该项目的配置文件与.h/.cpp等文件。
第一个创建的工程应该为Application项目,可作为启动项。

点击运行程序显示窗口。

4、添加子工程(基于多工程目录结构)
添加子工程有两个方法。
- 点击多工程项目目录结构的根项目,右键-“新子项目”,进行子项目的添加。

- 点击“文件”-“新建文件或项目”。

但是不论哪种方法,进入模板选择界面后,都需要选择“Library”-“C++库”。

进入子项目的创建。

勾选需要使用到的模块,一般勾选图中框起来的三个。

仍然让项目名称与.h/.cpp文件名称保持一致。

“作为子项目添加到项目中”仍然选择根项目,然后点击“完成”。

此时的目录结构如下:

文件夹下的目录结构如下:


5、 .pro文件
在多工程项目中存在多个.pro文件,大致可以分为三类:
- 根项目.pro:例如MulPrj.pro,用来控制所有子项目。
在这里我们只关注“SUBDIRS”,是根项目的固定写法,用来声明工程目录集的,需要添加或删除工程都可以在这里进行,删除对应的工程名称保存后,qt自动删除树目录结构下的对应工程。

注释之后可以看到目录结构下的工程都不见了。

也可以指定到目录文件夹下的.pro,在.pro与工程文件家名称不相同时使用。

- 启动项.pro:例如Project_1.pro,作为启动项,与子工程的配置有一些不同。
- Lib子工程.pro:例如Project_2.pro,作为创建时以library作为模板创建的工程。
#-------------------------------------------------
#
#ProjectcreatedbyQtCreator2023-03-03T14:27:35
#
#-------------------------------------------------QT+=coregui#“QT”是使用的QT库,从向导创建中可以看出,默认包含gui与core。如果不使用则生成的为QT-=coregui。这里是“+=”代表两个都使用。greaterThan(QT_MAJOR_VERSION,4):QT+=widgetsTARGET=Project_1 #生成.so目标,名称不做修饰,不用添加.so,自动生成名称.so。如:TARGET = Project_change ,生成的.so为“Project_change.so”
DESTDIR= ../Bin#指定.so的生成路径
TEMPLATE=app#固定写法 主工程为app,子工程为lib#Thefollowingdefinemakesyourcompileremitwarningsifyouuse
#anyfeatureofQtwhichhasbeenmarkedasdeprecated(theexactwarnings
#dependonyourcompiler).Pleaseconsultthedocumentationofthe
#deprecatedAPIinordertoknowhowtoportyourcodeawayfromit.
DEFINES+=QT_DEPRECATED_WARNINGS #预定义头#YoucanalsomakeyourcodefailtocompileifyouusedeprecatedAPIs.
#Inordertodoso,uncommentthefollowingline.
#YoucanalsoselecttodisabledeprecatedAPIsonlyuptoacertainversionofQt.
#DEFINES+=QT_DISABLE_DEPRECATED_BEFORE=0x060000#disablesalltheAPIsdeprecatedbeforeQt6.0.0CONFIG+=c++11SOURCES+=\
main.cpp\
Project_1.cppHEADERS+=\
Project_1.hFORMS+=\
Project_1.ui#Defaultrulesfordeployment.
qnx:target.path=/tmp/$${TARGET}/bin
else:unix:!android:target.path=/opt/$${TARGET}/bin
!isEmpty(target.path):INSTALLS+=target
在pro中配置目标路径后,在“项目”-“概要”中取消勾选“shadow build”,让makefile默认生成在该项目.pro所在路径。

相关文章:
Linux下在qtcreator中创建qt程序
目录 1、新建项目 2、单工程项目创建 3、多工程项目创建 4、添加子工程(基于多工程目录结构) 5、 .pro文件 1、新建项目 切换到“编辑”界面,点击菜单栏中的“文件”-“新建文件或项目” 2、单工程项目创建 只有一个工程的项目&#…...
快递再多也不怕!你的顺丰快递用上5G“神器”
互联网时代,剁手党疯狂“买买买”之后,快递件量再创新高。《2023年6月中国快递发展指数报告》显示,2023二季度单月快递业务量稳定在百亿件以上。其中,由于“618”电商促销活动与父亲节叠加,6月16日至20日单日揽收量均超…...
微信小程序:模板使用
目录 模板的优点: 一、静态模板创建 二、静态模板使用 1.*.wxml引入模板 2.模板使用 3.*.wxss引入模板的样式 三、动态模板创建 四、动态模板使用 1.*.wxml引入模板 2.模板使用 3.*.js定义动态数据 五、结果展示 总结 模板的优点: 有利于保持网…...
AUTOSAR NvM Block的三种类型
Native NVRAM block Native block是最基础的NvM Block,可以用来存储一个数据,可以配置长度、CRC等。 Redundant NVRAM block Redundant block就是在Native block的基础上再加一个冗余块,当Native block失效(读取失败或CRC校验失…...
Vue+ElementUI实现选择指定行导出Excel
这里记录一下,今天写项目时 的一个需求,就是通过复选框选中指定行然后导出表格中选中行的Excel表格 然后这里介绍一个工具箱(模板):vue-element-admin 将它拉取后,运行就可以看到如下界面: 这里面的很多功能都已经实现…...
SNMP简单介绍
SNMP SNMP是广泛应用于TCP/IP网络的网络管理标准协议,该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。SNMP采用轮询机制,提供最基本的功能集,适合小型、快速、低价格的环境使用…...
使用python对图像加噪声
加上雨点噪声 import cv2 import numpy as npdef get_noise(img, value10):#生成噪声图像>>> 输入: img图像value 大小控制雨滴的多少 >>> 返回图像大小的模糊噪声图像noise np.random.uniform(0, 256, img.shape[0:2])# 控制噪声水平ÿ…...
以 Java NIO 的角度理解 Netty
文章目录 前言Java NIO 工作原理Selector 的创建ServerSocketChannel 的创建ServerSocketChannel 注册 Selector对事件的处理总结 前言 上篇文章《Netty 入门指南》主要涵盖了 Netty 的入门知识,包括 Netty 的发展历程、核心功能与组件,并且通过实例演示…...
Maven自定义脚手架(多module模块)+自定义参数
脚手架 视频教程: Maven保姆级教程 脚手架是一个项目模板,包含常用的工程结构、代码。 1 自定义脚手架 脚手架创建的步骤如下,先创建一个工程,把常用的代码写好,进入工程根目录,进行如下操作: …...
爬虫逆向实战(七)--猿人学第十六题
一、数据接口分析 主页地址:猿人学第十六题 1、抓包 通过抓包可以发现数据接口是api/match/16 2、判断是否有加密参数 请求参数是否加密? 通过查看“载荷”模块可以看出m是加密参数 请求头是否加密? 无响应是否加密? 无cook…...
Qt 杂项(Qwt、样式等)
Qt隐藏窗口边框 this->setWindowFlags(Qt::FramelessWindowHint);Qt模态框 this->setWindowModality(Qt::ApplicationModal);QLable隐藏border 代码中设置 lable->setStyleSheet("border:0px");或者UI中直接设置样式:“border:0px” Qwt开源…...
Python程序设计——列表
一、引言 关键点:一个列表可以存储任意大小的数据集合。 程序一般都需要存储大量的数值。假设,举个例子,需要读取100个数字,计算出它们的平均值,然后找出多少个数字是高于这个平均值的。程序首先读取100个数字并计算它…...
NPDP含金量高吗?难考吗?
一,什么是NPDP认证? NPDP认证中文名为产品经理国际资格认证,New Product Development Professional (NPDP) ,是由美国 产品开发与管理协会 (PDMA) 所发起, 是国际公认的唯一的新产品开发专业认证,集理论、方…...
windows pip安装出现 error: Microsoft Visual C++ 14.0 is required
可参考:如何解决 Microsoft Visual C 14.0 or greater is required. Get it with “Microsoft C Build Tools“_不吃香菜的小趴菜的博客-CSDN博客 一、安装Visual Studio2022 1、下载:下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux 我这使…...
威胁分析风险评估(TARA)影响和攻击可行性评估参考
在威胁分析风险评估(TARA)过程中,风险等级由对资产安全属性侵害造成后果的影响等级和威胁的可能性两方面综合评估。 备注:以上内容的评估皆是建立在由信息安全问题引起并导致的前提下。 影响等级评估 影响等级说明,影响从安全&a…...
【教程】H5匿名信源码下载一封来信系统安装流程搭建教程
1、下载源码 匿名信2.0:匿名信h5源码 - 万策云盘 提取码:hOC4 2、查看搭建和使用教程 1,准备授权好的域名和服务器还有源码 2,创建网站和数据库,版本选择7.1【不可以选7.2】 3,上传源码并解压,导入数据…...
PyTorch训练简单的生成对抗网络GAN
文章目录 原理代码结果参考 原理 同时训练两个网络:辨别器Discriminator 和 生成器Generator Generator是 造假者,用来生成假数据。 Discriminator 是警察,尽可能的分辨出来哪些是造假的,哪些是真实的数据。 目的:使…...
django实现文件上传
在django中实现文件上传有三种方法可以实现: 自己手动写使用Form组件使用ModelForm组件 其中使用ModelForm组件实现是最简单的。 1、自己手写 先写一个上传的页面 upload_file.html enctype"multipart/form-data 一定要加这个,不然只会上传文件名…...
Java地图专题课 基本API BMapGLLib 地图找房案例 MongoDB
本课程基于百度地图技术,由基础入门开始到应用实战,适合零基础入门学习。将企业项目中地图相关常见应用场景的落地实战,包括有地图找房、轻骑小程序、金运物流等。同时讲了基于Netty实现高性能的web服务,来处理高并发的问题。还讲…...
vue实现可缩放拖拽盒子(亲测可用)
特征 没有依赖 使用可拖动,可调整大小或两者兼备定义用于调整大小的句柄限制大小和移动到父元素或自定义选择器将元素捕捉到自定义网格将拖动限制为垂直或水平轴保持纵横比启用触控功能使用自己的样式为句柄提供自己的样式 安装和基本用法 npm install --save vue-d…...
Emotion2Vec+语音情感识别系统:5分钟快速部署,9种情绪一键分析
Emotion2Vec语音情感识别系统:5分钟快速部署,9种情绪一键分析 1. 系统介绍与核心价值 1.1 什么是Emotion2Vec Emotion2Vec是一款基于深度学习的语音情感识别系统,能够自动分析语音中蕴含的情绪状态。这个由科哥二次开发构建的镜像版本&…...
ATOM-PRINTER嵌入式热敏打印固件深度解析
1. ATOM-PRINTER 嵌入式打印库深度解析与工程实践指南ATOM-PRINTER 是 M5Stack 推出的面向 ESP32 平台的轻量级嵌入式热敏打印固件库,专为 M5Stack Atom 系列微型主控模块(搭载 ESP32-WROVER-B)设计。该库并非传统意义上的“驱动层”C/C 库&a…...
YOLOv12涨点改进 | CVPR 2025 | 全网独家首发、Neck特征融合改进篇 | YOLOv12引入ADWM自适应双重加权融合模块,有效优化特征的加权与融合,减少冗余并增强目标特征
一、本文介绍 🔥本文给大家介绍使用ADWM模块改进YOLOv12目标检测网络模型,能够有效优化特征的加权与融合,减少冗余并增强目标特征的表现,提升目标检测的准确性和鲁棒性,特别是在多尺度、小目标和复杂背景下。通过ADWM的引入,YOLOv12的性能将得到显著改善,适应性和准确…...
gemma-3-12b-it镜像开箱即用:3分钟完成多模态服务启动与测试
gemma-3-12b-it镜像开箱即用:3分钟完成多模态服务启动与测试 1. 快速了解Gemma-3-12b-it 如果你正在寻找一个既能理解文字又能看懂图片的AI模型,而且希望它能在普通电脑上运行,那么Gemma-3-12b-it就是为你准备的。 Gemma是Google推出的轻量…...
智能序列自动化执行完全指南:从技能管理痛点到战斗效能提升的5步解决方案
智能序列自动化执行完全指南:从技能管理痛点到战斗效能提升的5步解决方案 【免费下载链接】GSE-Advanced-Macro-Compiler GSE is an alternative advanced macro editor and engine for World of Warcraft. It uses Travis for UnitTests, Coveralls to report on t…...
快速上手腾讯混元OCR:部署过程常见错误及解决方法合集
快速上手腾讯混元OCR:部署过程常见错误及解决方法合集 1. 认识腾讯混元OCR 腾讯混元OCR(HunyuanOCR)是一款基于腾讯混元原生多模态架构的端到端OCR专家模型。作为一款轻量级但功能强大的文字识别工具,它仅用1B参数就实现了多项业…...
毕业季论文救星:深度解析百考通AI如何智能攻克文献综述与开题报告
又到一年毕业季,无数莘莘学子在为自己学术生涯的“终极答卷”——毕业论文而挑灯夜战。其中,文献综述的浩如烟海与开题报告的千头万绪,无疑是横亘在大多数同学面前的两座大山。你是否也曾面对海量文献不知如何筛选梳理?是否为构建…...
CoPaw自动化办公实战:Python脚本批量处理文档与邮件
CoPaw自动化办公实战:Python脚本批量处理文档与邮件 1. 为什么需要办公自动化? 每天重复处理大量文档和邮件,是不是让你感到疲惫不堪?根据统计,普通职场人平均每天要花费2-3小时在文档处理和邮件回复上。这些重复性工…...
跨平台音频格式兼容性处理:让FRCRN支持更多音视频文件
跨平台音频格式兼容性处理:让FRCRN支持更多音视频文件 你有没有遇到过这种情况?精心搭建了一个基于FRCRN模型的音频降噪服务,信心满满地准备上线,结果用户一上传文件,服务就报错。有的用户传的是手机录的.m4a…...
OpenClaw多模态扩展:结合百川2-13B-4bits与OCR的图像信息处理流程
OpenClaw多模态扩展:结合百川2-13B-4bits与OCR的图像信息处理流程 1. 为什么需要多模态能力扩展? 上周我需要整理一批技术文档的截图,包含代码片段、错误日志和流程图。手动转录不仅耗时,还容易出错。这让我开始思考:…...
