Qt学习笔记3:Qt工程的目录结构

2023-11-08

经过前两篇的学习,已经可以使用Qt空项目模板创建自己的工程了。通过本篇的学习,整理一下如果使用Qt工程的目录结构,使项目更规范和容易管理。

当前的目录结构

如图所示,这是前篇中创建的工程,只有main.cpp和widget.cpp、widget.h三个文件,直接放在了一个目录下,没有子目录:

1

在向工程中添加新文件时,默认情况下,都是自动创建到当前目录下。工程文件比较少时不会影响使用,但是当文件多起来,工程就变的难以管理,这个时候,再去整理文件就变得麻烦。所以,好的工程,应该在最开始构建项目时,就将工程的目录结构创建好。下面,我们来介绍一下怎样创建Qt工程的目录结构。

使用Qt工程的目录结构

当我们的工程下需要分目录管理文件时,可以通过以下两种方式实现:

  • 使用子目录路径
  • 使用pri文件

接下来我们对这两种方式分别介绍,可自行选择。

使用子目录路径

在向工程添加或新创建文件时,创建子文件,并将文件创建在子目录下。

2

将创建的类放在子目录下,完成后,效果如图所示:

3

在pro文件中自动加入了src/widget.h和src/widget.c两个文件,都是使用相对路径的方式。
以这种方式的子目录,在使用时,头文件的引用也要加上相对路径,否则会出现找不到文件的错误。或者再pro文件中添加环境变量:

INCLUDEPATH += src

可以正常使用。Qt工程会自动将新增的文件分类放在头文件和源文件两个目录下。在实际目录下是没有这两个文件夹的,但是看着特别别扭。

使用pri文件

第二种方式,使用pri文件。关于pro、pri、prf、prl文件在Qt的用途和使用方法,可以自行学习。
pri文件的作用,这里是将pro文件的一部分放入每个路径下的pri文件,分别管理,最后在将pri文件包含到pro中即可。使用方法:

(1)手动创建pri文件
手动创建子目录,并创建空文件或文本文件,将文件后缀改为pri。
注意,pri文件的文件名就是Qt工程显示的子目录名,而不是实际手动创建的子目录,这里建议将pri的文件名和子目录名保持一致。

(2)包含pri文件
在pro文件中包含pri文件,使用include命令

include(src/src.pri)

保存后,Qt工程会自动将pri文件添加到工程中,并显示子目录

4

(3)添加新文件
右键选择子目录,点击添加新文件或者创建文件,完成后如图所示:

5

Qt工程会自动向子目录下的pri工程文件添加文件,并将文件信息自动写入pri文件。

6

使用这种方法,不需要增加INCLUDEPATH环境变量,不会出现找不到头文件的问题。

如何去除Qt文件自动分类Sources和Headers

当前我使用的Qt版本是5.6,查了一下资料,发现最新版本在创建或者添加文件时,都会自动对文件进行分类,显示Sources和Headers目录下。
尝试了几种办法,都无法去除自动分类。在CSDN论坛发帖问了一下,据说是改不了。倒是不影响使用,不知道后续的版本这个地方会不会有变化。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt学习笔记3:Qt工程的目录结构 的相关文章

随机推荐

  • ChatGPT vs. Bing vs. Bard

    随着 2022 年 ChatGTP 的推出 人工智能聊天机器人的世界突然走上了一条新道路 如今 密切关注 AI 的人都知道 不同公司推出了几款产品 从谷歌拥有自己的 Bard AI 到微软发布新的 Bing AI Chat 再到 OpenA
  • 6.6开发社区搜索功能

    业务层 新建ElasticsearchService类 package com nowcoder community service import com nowcoder community dao elasticsearch Discu
  • 【电源】DC-DC电路中的伏秒平衡原理

    上一篇我们科普了开关电源 在提到的开关电源中我们常用也就DC DC电路 所以从今天开始将进入到我们的DC DC电路专题 在DC DC电路应用中 我们很多工程师比较难理解BUCK BOOST的升降压区别 或者原理看完就忘又区分不开 那是因为没
  • window子系统使用及问题汇总

    window子系统使用及问题汇总 安装 配置子系统的资源大小 切换默认源 安装docker 解决wsl无法使用systemctl的问题 子系统访问windows系统中的文件 window访问子系统的文件 总结 最近在使用windows上的d
  • nginx vue2+webpack 和 vue3+vite 配置二级目录访问

    我们开发中会遇到这样的需求 让我们用服务器nginx部署一个用域名的二级目录来访问项目 https xxx 二级目录 来放访问项目 目录 思路 1 nginx配置 vue2 和 vue3配置的nginx相同 2 vue2 webpack的配
  • 如何在IDEA设置Java类和方法的注释模板?

    如何在IDEA设置Java类和方法的注释模板 1 类的注释模板设置 首先我们打开IDEA软件 进行如下操作 File gt Settings gt Editor gt File and Code Templates 设置好后 当我们再次创建
  • 磁盘性能基本测试方法

    author skate time 2011 08 22 磁盘性能基本测试方法 dd if dev zero of tmp bs 1M count 10 用dd命令测试瞬间写的能力 iozone a i 1 i 0 c g 5M n 1M
  • PC电脑版微信聊天记录迁移方法

    微信电脑版自带的 备份与恢复 功能 只能把手机上的聊天记录 备份在电脑上 仅仅是备份 是不能在微信电脑版上查看刚备份的聊天记录的 备份后就可以删除手机上的聊天记录 需要的时候再用电脑版留存的备份恢复到手机上 适用场景 可自行琢磨 微信手机版
  • config:invalid signature

    之前服务器换了IP 啥都配置对了 就是IP没改过来 好了 又是花了半天时间排查问题 问题解决 微信config invalid signature 的其中一个错误就是ip地址问题 需在公众号后台 gt 基本配置 gt 设置IP白名单 欢迎关
  • Python time time()方法返回的是秒

    描述 Python time time 返回当前时间的时间戳 1970纪元后经过的浮点秒数 语法 time 方法语法 time time 参数 NA 返回值 返回当前时间的时间戳 1970纪元后经过的浮点秒数 实例 以下实例展示了 time
  • Linux目录操作命令

    1 查看目录命令 ls 用法 ls 选项 目录名 常用选项 a 显示所有文件 包含隐藏文件 l 显示长文件信息 案例 查看 user下的所有文件 ls a user ls 文件或目录路径信息 ls d 查看目录信息 ls l 文件或目录信息
  • Unity Shader入门精要文章目录

    前言 从今天开始 我将每天开始学习一些有关于Shader的知识 并把所学到的知识简化 写成文章来供大家参考或者学习 一方面是为了巩固知识 另一方面是我也没有找到什么系统的文章来学习Shader的知识 我的Shader学习大部分是参考了Uni
  • GDI+ 中路径类使用总结

    背景 路径是一系列相互连接的直线和曲线 由许多不同类型的点所构成 用于表示复杂的不规则图形 GraphicsPath 类表示 要绘制一组图形 如线条 矩形 多边形和曲线等 可以通过 Graphcis 类的 DrawPath 方法一次性绘制
  • 《Python进阶系列》二十六:面试题目:[lambda x: x*i for i in range(4)]

    quad quad 闲着无聊 看了道面试题 瞬间涨姿势了 特地做个总结 题目 题目如下 lst lambda x x i for i in range 4 res m 2 for m in lst print res 上述式子的输出结果 预
  • VirtualBox中出现 UUID have already exists : 修改 UUID

    VirtualBox中出现UUID have already exists 解决方法 要点 C Program Files Oracle VirtualBox VBoxManage exe internalcommands sethduui
  • C++——vector

    文章目录 vector的介绍 vector的使用 为什么vector不提供find 排序 sort vector的模拟实现 搭一个最简单的架子 构造函数和析构函数 尾插 尾删 operator 迭代器 insert erase 迭代器失效
  • [caffe安装]配置环境过程中出现的问题及解决

    今天要跑一下Convolutional Autoencoder for Loop Closure 轻量级神经网络闭环方法 caffe安好之后编译程序出现以下错误 Scanning dependencies of target deeplcd
  • React 之常用组件类型

    无状态组件 主要用于内部没有状态更新操作的组件 同构props进行基本的数据渲染或常量展示 该类组件职责单一 有利于组件的高复用 const PureComponent props gt div props list map txt ind
  • 金融市场概览

    文章目录 金融市场的功能 金融市场的分类 主要金融机构 中国金融市场概况 本文简要展现真实世界中的金融市场的面貌 介绍其基本结构 主要玩家 交易的主要资产 以及主要的业务形式 金融市场的功能 金融是通过交易金融资产来实现资金通融 很容易想到
  • Qt学习笔记3:Qt工程的目录结构

    经过前两篇的学习 已经可以使用Qt空项目模板创建自己的工程了 通过本篇的学习 整理一下如果使用Qt工程的目录结构 使项目更规范和容易管理 当前的目录结构 如图所示 这是前篇中创建的工程 只有main cpp和widget cpp widge