【Qt】如何使用QtCreator向工程添加文件

news2024/11/15 13:47:24

文章目录

    • 一、导读
    • 二、盘一盘文件模板
      • (2-1)添加C/C++文件
      • (2-2)添加Modeling文件
      • (2-3)添加Qt相关文件
      • (2-4)添加GLSL相关文件
      • (2-5)添加其他文件
    • 三、总结

一、导读

当使用QtCreator的『新工程创建向导』创建好一个最基本的项目工程后,我们则需要往项目工程中添加新的文件用于描述项目。一般情况下,在项目设计阶段,则会规划出具体的描述文件有哪些,名称如何命名,项目源码的目录结构如何划分等。如果想要为已有的工程添加新的文件,则需要使用QtCreator提供的『新文件创建向导』:

本文主要描述新文件创建向导中各个选项的用途,基于QtCreator版本:8.0.1

新文件创建向导就是将文件添加到已有的Qt项目工程中,且会在文件中生成最基本的代码。

二、盘一盘文件模板

(2-1)添加C/C++文件

如果想要为已有工程添加C/C++相关的文件,则选择如下图所示的选项:

  • (1)C++ Class :该选项将自动添加两个文件:头文件和源文件,在向导过程中,可以指定类的名称,类的基类,指定包含的元素和Q_OBJECT。如果想要为工程添加类且不包含ui文件,则选择该选项。(该选项在开发中较常使用)。

  • (2)C/C++ Source File :该选项将一个没有任何内容的.cpp文件添加到工程中。

  • (3)C/C++ Header File :该选项将一个.h文件添加到工程中。文件中包含了最基本的编译控制条件宏定义。

(2-2)添加Modeling文件

如果想为已有工程添加(UML)文件,则选择如下图所示的选项:

  • (1)States Chart :该选项用于创建一个空的状态图。

  • (2)Model : 该选项使用一个空的状态图创建一个新的空模型。

  • (3)Scratch Model :该选项使用临时文件创建一个临时模型。

(2-3)添加Qt相关文件

Qt选项下的各个子选项在实际项目开发中是经常使用到了,如下图所示:

  • (1)Qt Item Model :该选项用于向已有工程添加Item模型,Qt中支持三种自定义模型:ItemModelTableModelListModel。该选项会自动创建对应的模型描述文件(.h/.cpp)且自动生成基本的模型描述代码。

  • (2)Qt 设计师界面类 :该选项用于向已有工程添界面类,界面类由三个文件描述:一个头文件、一个源文件和一个xxx.ui文件。(在实际开发中,该选项较为常用)

  • (3)Qt Designer Form :该选项用于向工程添加一个xxx.ui文件。可以使用Qt Designer打开该文件进行编辑。

  • (4)Qt Resource File :该选项用于向工程添加一个资源文件。对于一个项目中所使用的图标、图片等元素,将由这个资源文件进行描述,最后会经Qt的资源系统编译构建进应用程序中。

  • (5)QML File (Qt Quick 2):该选项用于向工程添加一个qml文件,并自动生成了最基本的代码。(该选项在QtQuick qml项目开发中经常使用)

  • (6)JS File :该选项用于向工程添加一个JavaScript文件,用于描述在QtQuick项目中的逻辑行为。

(2-4)添加GLSL相关文件

OpenGL着色语言(OpenGL Shading Language)是用来在OpenGL中着色编程的语言,QtCreator提供了创建这些渲染的描述文件,如下图所示:

  • Fragment Shader(OpenGL/ES 2.0):该选项用于在OpenGL/ES 2.0 Shading Language(GLSL/ES)中创建一个片段着色器。片段着色器将使用OpenGL渲染为三角形、点和线生成最终的像素颜色。

  • Vertext Shader(OpenGL/ES 2.0) :该选项用于在OpenGL/ES 2.0Shading Language(GLSL/ES)中创建一个顶点着色器。顶点着色器使用OpenGL对位置进行转换,渲染用于法线和纹理坐标的三角形,点和线。

  • Fragment Shader(Desktop OpenGl) :该选项用于在Desktop OpenGL Shading Language(GLSL)中创建一个片段着色器。与『Fragment Shader(OpenGL/ES 2.0)』选项类似,片段着色器使用OpenGL为三角形、点和线生成最终的像素颜色。

  • Vertex Shader(Desktop OpenGL) :该选项用于在Desktop OpenGL Shading Language(GLSL)中创建一个顶点着色器。用于渲染三角形、点和线。

(2-5)添加其他文件

在后续的几个选项中,用于向已有工程中添加空文件、Java文件和Python文件。

三、总结

本文主要描述了QtCreator中的『新文件创建向导』下各个选项的用途。当需要往已经存在的项目中添加文件时,只需要选择向导下对应的选项即可添加。对于已经存在的文件,则使用QtCreator自带的文件导入选项导入即可(QtCreator会自动判断其文件类型并添加到对应的目录结构中)

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

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

相关文章

【JavaSE专栏3】JDK安装、IntelliJ IDEA安装、配置环境变量

作者主页:Designer 小郑 作者简介:Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发(Vue、SpringBoot和微信小程序)、系统定制、远程技术指导。CSDN学院、蓝桥云…

【苹果相册推】Xcode项目,我们将其命名为mypushchat,以及调试的iOS设备

推荐内容IMESSGAE相关 作者✈️IMEAX推荐内容iMessage苹果推软件 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容1.家庭推内容 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容2.相册推 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容3.日历推 *** …

第二个程序——客户端ClientUI

简介 在我的上一篇文章中,我已经介绍了如何实现“在线聊天室”中的服务器端ServerUI,服务器端作为整个聊天系统的“中继系统”,负责转发用户的信息到聊天室,可以转发给聊天室中的每一个人(即,群聊&#xf…

一期Go群问答-并发控制-数据竞争-错误与异常

每周更新Go技术交流群的群问答内容,有需要可发我Go加群讨论学习。 并发控制 waitGroup.done()不是必须写在main方法中吗? 为什么我的协程没有成功等待? 熊:如果用了wait group,请求就直接卡住了,如果只有一个gorou…

Linux C编程一站式学习笔记5

Linux C编程一站式学习笔记 chap5 深入理解函数 文章目录Linux C编程一站式学习笔记 chap5 深入理解函数一.return语句习题二.增量式开发三.递归我猜有递归可视化工具,一搜果真有收获习题GCD(Greatest Common Divisor) 最大公约数Fibonacci相关资源、参考资料嘶&…

在linux中安排mysql

linux安装mysql 检测当前系统中是否安装Mysql数据库 rpm -qa rpm -qa|grep mysql rpm -qa|grep mariadb没有输出就是没有安装 我的这里显示mariadb是安装了的(会与mysql冲突) 卸载已经安装的软件 rpm -e --nodeps 软件名称 rpm -e --nodeps mariadb-li…

什么是执行董事

一、什么是执行董事执行董事,是指参与经营的董事。作为法定意义上的执行董事,是指规模较小的有限公司在不设立董事会的情况下设立的负责公司经营管理的职务。作为上市公司意义上的执行董事,执行董事并没有明确的法规依据。执行董事和非执行董…

偷偷理解Java和Scala中==和equals()的区别

君霸王,社稷定,君不霸王,社稷不定🥽 目录 Java总结 Scala总结 Java中和equals() ---------------------------------------------------------------------------------------------------------------------------------------…

【人工智能原理自学】卷积神经网络:图像识别实战

😊你好,我是小航,一个正在变秃、变强的文艺倾年。 🔔本文讲解卷积神经网络:图像识别实战,一起卷起来叭! 目录一、“卷”二、LeNet-5网络一、“卷” 这节课我们来看如何把卷积运算融入到神经网络…

【青训营】Go语言的基本语法

一、 配置Go语言及其开发环境 Mac配置:http://t.zoukankan.com/zsy-p-6685889.html https://wenku.baidu.com/view/8aeec92b15fc700abb68a98271fe910ef12daeaf.html?wkts1673764660043&bdQuery%E5%A6%82%E4%BD%95%E9%85%8D%E7%BD%AEgopathmac 二、基础语法 p…

避免用Apache Beanutils进行属性的copy。why?让我们一起一探究竟。

在实际的项目开发中,对象间赋值普遍存在,随着双十一、秒杀等电商过程愈加复杂,数据量也在不断攀升,效率问题,浮出水面。 问:如果是你来写对象间赋值的代码,你会怎么做? 答&#xf…

05 |「链表」刷题

前言 前言:链表面试高频题。 文章目录前言一. 基础回顾二. 高频考题1. 例题1)题目链接(LeetCode 206 反转链表)2) 算法思路3)源码剖析4)时间复杂度2. 习题一. 基础回顾 参考上一讲: …

线性代数[向量]

系列文章目录 第一章 线性代数[初等变换(一)] 第二章 线性代数[初等变换(二)] 第三章 线性代数[初等变换(三)] 第四章 线性代数[矩阵的秩] 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.引入 二.向…

计网必会:运输层概述、网络层介绍、TCP、UDP、多路复用、多路分解

文章目录运输层概念回顾TCP 和UDP概述介绍网络层TCP UDP网络层的联系多路复用和多路分解多路复用和多路分解的中国话理解TCP的多路复用和多路分解与UDP的区别HTTP 会话Web服务器和TCPUDP的多路复用和多路分解源端口号的用处的中国话理解UDP套接字无连接运输UDP 的优势运输层概念…

【C语言进阶】指针进阶(详细版)

目录 一、字符指针 二、指针数组 三、数组指针 1、数组指针的定义 2、&数组名和数组名的区别 3、数组指针的使用 四、数组传参和指针传参 1、一维数组传参 2、一级指针传参 3、二维数组传参 4、二级指针传参 五、函数指针 1、函数指针的定义 2、函数指针的使用 六、…

如何与他人交流

上期我们讲了打破预期,顺应主体,我的别人交流,只有在不把别人当成对象(工具人),而是把对方当成主体的情况下(让别人感受到尊重),这是相互尊重的终极本质,也是唯一方法.把别人当人看.认同对方,对方也会认同你.自信从何而来自信本意为相信自己,所以自信本应该是由内而外的事物,但…

【MySQL进阶】MySQL事务详解

序号系列文章5【MySQL基础】字符集与校对集详解6【MySQL基础】MySQL单表操作详解7【MySQL基础】运算符及相关函数详解8【MySQL基础】MySQL多表操作详解文章目录前言1,事务概念2,事务四大特性2.1,原子性2.2,一致性2.3,隔…

ORB SLAM3 ubuntu18.04 ROS 运行 段错误 (核心已转储) 踩坑及解决

问题猜测及解决:opencv版本兼容性 项目版本:ORB SLAM3 V1.0版本 CPU:13600K (大小核架构不知是否会影响) 电脑环境:ubuntu18.04 ROS运行 相机:D435 i opencv版本:3.2 and 4.6 前提:编译无报错&a…

Java 23种设计模式(3.创建者模式-原型模式)

1.概述 用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象。 2.结构 原型模式包含如下角色: 抽象原型类: 规定了具体原型对象必须实现的的 clone() 方法。 具体原型类: 实现抽象原型类的 clon…

多线程(5)

文章目录前言 :常见锁策略了1.悲观锁 VS 乐观锁2. 轻量级锁 VS 重量级锁3.自旋锁 VS 挂起等待锁4. 读写锁 VS 普通的互斥锁5. 公平锁 和 非公平锁6. 可重入锁 VS 不可重入锁CAS1. CAS 的应用场景2. CAS 的典型问题 : ABA 问题synchronized 原理1.锁升级 / 锁膨胀2.锁…