当前位置: 首页 > news >正文

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采用轮询机制,提供最基本的功能集,适合小型、快速、低价格的环境使用&#xf…...

使用python对图像加噪声

加上雨点噪声 import cv2 import numpy as npdef get_noise(img, value10):#生成噪声图像>>> 输入: img图像value 大小控制雨滴的多少 >>> 返回图像大小的模糊噪声图像noise np.random.uniform(0, 256, img.shape[0:2])# 控制噪声水平&#xff…...

以 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…...

React Native 开发环境搭建(全平台详解)

React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

微信小程序云开发平台MySQL的连接方式

注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...

什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南

文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...

优选算法第十二讲:队列 + 宽搜 优先级队列

优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

PAN/FPN

import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

Java毕业设计:WML信息查询与后端信息发布系统开发

JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息&#xff0…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

解读《网络安全法》最新修订,把握网络安全新趋势

《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...

MyBatis中关于缓存的理解

MyBatis缓存 MyBatis系统当中默认定义两级缓存:一级缓存、二级缓存 默认情况下,只有一级缓存开启(sqlSession级别的缓存)二级缓存需要手动开启配置,需要局域namespace级别的缓存 一级缓存(本地缓存&#…...