Qt扫盲-QMake 语言概述

news2024/11/18 5:31:59

QMake 语言概述

  • 一、概述
  • 二、变量
  • 三、替换函数
  • 四、测试函数

一、概述

这里主要就是记录一下如何使用 qmake Manual,里面关于我对 qmake的理解,以及如何配置这个 qt 工程文件,通过配置工程文件,来构建出,APP,库,Qt插件等等,通过查看帮助来配置我们经常使用的内容。在使用的时候,我觉得最重要的其实就是在我这个博客专栏里面的 其他 QMake 相关的内容。这里的东西都是写在 *.pro 文件 或者 *.pri 文件里面,主要还是写在 pro文件里面的哈。

这个 查看 这个内容是在 Qt Assistant 里面

在这里插入图片描述

二、变量

Variables 描述 qmake在配置项目的生成过程时识别的变量。

用户也可以创建自定义变量,当遇到对一个名称赋值时,qmake会使用给定的名称创建一个新的变量。例如:

MY_VARIABLE = value

对于自定义的变量,没有任何使用限制,因为qmake将忽略它们,除非在处理作用域时需要对它们进行评估。

通过变量名使用 “ $$ ” 前缀可以将一个变量的值赋值给另一个变量。例如:

MY_VAR =   $$CONFIG 

现在 MY_VAR 变量包含工程文件中 CONFIG 变量在此处中的内容。等效于下列代码:

MY_VAR = $${CONFIG }

第二种写法允许将变量的内容追加到另一个值,不用空格分隔这两个值就会连接在一起。

例如,下列代码会确保最终的可执行文件有一个包含所使用模板的名称。

TARGET = myproject_$${TEMPLATE}

系统内置变量 定义了很多跟工程相关的内容,就像下面
在这里插入图片描述
我们点击 对应的索引就能跳转到对应详细的内容。

比如 FORMS 变量,他会说明这个是干嘛的,怎么用的之类的。

在这里插入图片描述

FORMS 这个变量指定在编译之前会由 uic 处理的 UI 文件。所有构建这些UI文件所需的依赖项、头文件和源文件都将自动添加到项目中。我们在添加界面类的时候,这个就会把 *.ui文件放在这里,当然我们可以注释掉这些ui.

还比如 CONFIG 变量,可以配置编译的模式是什么之类的
在这里插入图片描述

这个变量里面还可以指定 stl 使用,c++标准的版本之类的,很多很多内容。

在这里插入图片描述

三、替换函数

Qmake提供了在配置过程中处理变量内容的函数。这些函数称为替换函数(replace function)。通常,它们返回的值可以赋值给其他变量。可以在函数前加上$$操作符来获得这些值。替换函数可以分为内置函数和函数库。

在这里插入图片描述

就比如 dirname(file) 就是获取一个 字符串的路径
在这里插入图片描述
就比如要引入很多库的时候,就可以用这个功能,很多时候需要加 $$来区分变量和字符串

LIBPATH = /usr/local/lib

for(var, $$list(lib1 lib2 lib3)) {
      LIBS += -L$$LIBPATH -l$$var
}

message($$LIBS)

四、测试函数

测试函数返回一个布尔值,我们可以在作用域的条件部分中对其进行测试。

测试函数可以分为内置函数和函数库。 测试函数和替换函数的区别就是一个是返回bool值,一个返回字符串的。

找到这个目录,点击对应的目录就能够查看详情

在这里插入图片描述
就比如说 equals(variablename, value) 函数
在这里插入图片描述
判断这个 variablename 是不是和 value 一致

还用得到的就比如 include(filename) 函数,我们一般把这个用来包含子目录,就是项目结构比较复杂的时候使用

在这里插入图片描述

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

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

相关文章

如何在Github上配置ssh key的密钥

Step0 : 解释说明 git使用SSH配置, 初始需要以下三个步骤 使用秘钥生成工具生成rsa秘钥和公钥将rsa公钥添加到代码托管平台将rsa秘钥添加到ssh-agent中,为ssh client指定使用的秘钥文件 Step 1: 核验本地主机是否已经存在ssh密钥。(若id_rs…

ChatGPT之文章生成

文章目录介绍激励设计Prompt Design故障调整Troubleshooting分类Classification提高分类器的效率生成对话内容转化翻译转化总结实际问答插入文本编辑模式介绍 ChatGPT功能很强大,它可以根据你给出的模板和文本进行文本补全,最好的探索方式就是使用我们给…

数据预处理(无量纲化、缺失值、分类特征、连续特征)

文章目录1. 无量纲化1.1 sklearn.preprocessing.MinMaxScaler1.2 sklearn.preprocessing.StandardScaler2. 缺失值3. 分类型特征4. 连续型特征数据挖掘的五大流程包括:获取数据数据预处理特征工程建模上线 其中,数据预处理中常用的方法包括数据标准化和归…

3分钟学会图新地球图源制作详细教程

图新地球图源制作 1.资源准备 (1) 准备一份图新地球支持的lrc格式的图源; (2) 安装图新地球 (LSV)软件和奥维omap软件 。 2.操作步骤 (1) 用记事本打开lrc格式的文件(图①),同时用奥维软件…

Unity 多语言 轻量高效的多语言工具集 LanguageManager

效果展示 支持excel导入自动化 组件化 更方便 也提供直接获取多语言的接口 没有挂 LanguageText的对象也可以获取多语言文本内容 支持 Format接口 可以传递N个参数进来组装多语言 支持首次系统语言自测 支持语言切换后本地自动保存配置 支持实时切换 同步刷新所有UI 容错处…

Maven:在Intellij idea的使用

MavenIntellij idea配置MavenIntellij idea创建Maven项目Java项目的创建Web项目的创建Intellij idea执行Maven命令JavaWeb项目转为Maven项目遇到的问题解决了解到Maven的基础知识后,接下来,简单介绍Maven在Intellij idea的使用( 以 IntelliJ …

在线开会,来开开圆桌会议吧~

圆桌会议应用场景:适合内部培训、部门会议亦或是头脑风暴等较为轻松的场景,有兴趣的朋友可以联系我来测试哦~~ 上图: 图:圆桌会议应用截图 在圆桌布局之下,企业可以将每一位参会者和座位绑定,1:1模拟线下圆…

微信中如何接入机器人才比较安全(不会收到警告或者f号)之第三步正式接入

大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂。 前言 前面两篇文章分别介绍了下chatgpt接入方式: 微信中如何接入chatgpt机器人才比较安全(不会收到警告或者f号)之第一步登录微信 微信中如何接入chatgpt机器人才比较安全(不会收到警告或者f号)之第二步注入dll文件…

Spring 底层原理与解析 - 容器接口

Spring 底层原理与解析 - 容器接口 BeanFactory 能做哪些事 BeanFactory 与 ApplicaiotnContext 到底是谁提前做完了对象的加载 在之前的一篇关于 Spring 的文章Spring IoC 与容器的初始化中提到过,BeanFactory 接口与 ApplicationContext 接口之间的关系 可以看…

MySQL作业四

学生表:Student (Sno, Sname, Ssex , Sage, Sdept) 学号,姓名,性别,年龄,所在系 Sno为主键 课程表:Course (Cno, Cname,) 课程号,课程名 Cno为主键 学生选课表:SC (Sno, Cno, Score)…

编译链接实战(8)认识elf文件格式

🎀 关于博主👇🏻👇🏻👇🏻 🥇 作者简介: 热衷于知识探索和分享的技术博主。 💂 csdn主页::【奇妙之二进制】 ✍️ 微信公众号:【Linux …

FreeRTOS的列表和列表项

目录 列表和列表项的简介 列表和列表项的关系 列表相关API函数介绍 函数vListInitialiseI() 函数vListInitialiseItem() 函数vListInsert() 函数vListInsertEnd() 函数uxListRemove() 列表和列表项的简介 列表是FreeRTOS中的一个数据结构,概念上和链表有点类…

电脑的安全模式安全吗?如何进入安全模式?

“怎么进安全模式?”这条留言成功引起了驱动哥的注意。 在遇到电脑蓝屏、黑屏等系统问题的时候,如何在更安全且不损失电脑文件的情况下修复故障?系统早已为大家准备好了相应的修复策略。 没错!电脑也有属于自己的Plan B——安全…

我工作5年测试才8K,应届生刚毕业就拿16K?凭什么

我从事手工测试五年了,还拿着8K的死工资,家里还几张嘴需要喂养,我很累,也很迷茫…【某个粉丝跟我的诉说】 为什么手工测试会迷茫呢? 自动化测试、性能测试倒是不会迷茫。 我认为手工测试的迷茫基于两个原因&#xf…

数据分析与SAS学习笔记5

DATALINES语句: 相当于CARS语句; 该语句必须是数据步的最后一条语句; MISSOVER处理; DATA TEMP; INFILE DATALINES MISSOVER; INPUT X Y Z; DATALINES; 1 10 100 2 20 3 30 300 ; PROC PRINT; RUN; 代码说明: 1&am…

生物信息场景下的用户需求

背景分析概念定义基因测序是一种新型基因检测技术,是基因检测的方法之一,其又叫基因谱测序,是国际上公认的一种基因检测标准。基因测序技术能锁定病变基因,提前预防和治疗。过长的测序周期以及上万美元的仪器成本,成了…

第二章:unity性能优化之drawcall优化-1

目录 前言: 一、什么是drawcall 二、如何合批 1、什么是合批? 2、静态批处理 1、什么是静态批处理: 2、静态合批的规则 3、动态批处理 4、GPU Instancing 1、GPU instancing的定义 2、编写支持GPU instancing Shader步骤 5、…

Blazor 托管模型 BlazorWebAssembly和Blazor Server

BlazorWebAssembly 应用 BlazorWebAssembly 应用使用基于 WebAssembly 的 .NET 运行时在浏览器中直接执行。 BlazorWebAssembly 应用的工作方式类似于 Angular 和 React 等前端 JavaScript 框架。 但不是编写 JavaScript,而是编写 C#。 .NET 运行时与应用、应用程序…

day18_常用API之String类丶Object类

String概述 java.lang.String 类代表字符串,String类定义的变量可以用于指向字符串对象,同时String类提供了很多操作字符串的功能,我们可以直接使用。Java 程序中的所有字符串文字(例如“abc”)都为此类的对象 特点:St…

【STM32笔记】低功耗模式下GPIO、外设、时钟省电配置避坑

【STM32笔记】低功耗模式下GPIO、外设、时钟省电配置避坑 前文: blog.csdn.net/weixin_53403301/article/details/128216064 【STM32笔记】HAL库低功耗模式配置(ADC唤醒无法使用、低功耗模式无法烧录解决方案) blog.csdn.net/weixin_534033…