需求

在Qt开发中,可能会有这样的需求,需要根据Qt版本来决定加载不同的库,或者定义宏、添加不同的文件等等,那这就需要在工程文件中对当前Qt版本进行判断了。

正文

Qt版本判断

最基础的需求,查看当前Qt版本,可以使用命令 $$[QT_VERSION] 输出,
比如:

message(Qt Version = $$[QT_VERSION] )

判断大版本

所谓的大版本就是版本号第一位, 比如Qt4或者Qt5,这个很简单,比如我们要判断版本是否大于Qt4,可以使用:

greaterThan(QT_MAJOR_VERSION, 4): xxxx

备注:xxxx是你要做的事情。

那么,判断版本是否小于Qt5,可以使用:

lessThan(QT_MAJOR_VERSION, 5): xxxx

当然,以上更简单的写法可以是:

greaterThan(QT_MAJOR_VERSION, 4){  message(当前为Qt5及以上版本)
}
else{message(当前为Qt5以下版本)
}

判断版本号第二位

版本号第二位,比如说要判断Qt版本是5.6 还是 5.9,或者是否大于Qt5.6 等等。这种判断就需要对版本号第二位进行,可以使用以下方法:

#check Qt version
QT_VERSION = $$[QT_VERSION]
QT_VERSION = $$split(QT_VERSION, ".")
QT_VER_MAJ = $$member(QT_VERSION, 0)
QT_VER_MIN = $$member(QT_VERSION, 1)lessThan(QT_VER_MAJ, 5) | lessThan(QT_VER_MIN, 6) {message(Qt版本小于5.6)
}
else{message(Qt版本大于或等于5.6)
}

判断版本号等于多少,可以使用:

equals(QT_VER_MAJ ,5) | equals(QT_VER_MIN ,6) {message(Qt版本等于5.6)
}

判断版本号第三位

版本号第三位就比如 Qt 5.6.3 中的 3,判断这一位和上面其实差不多,在基础上添加一句就行了:

#check Qt version
QT_VERSION = $$[QT_VERSION]
QT_VERSION = $$split(QT_VERSION, ".")
QT_VER_MAJ = $$member(QT_VERSION, 0)
QT_VER_MIN = $$member(QT_VERSION, 1)
QT_VER_THR = $$member(QT_VERSION, 2)

其中QT_VER_THR 就是第三位的值了,再根据上面的判断方法来就行啦。

Qt工程文件Pro中判断Qt版本号相关推荐

  1. 解决qt工程文件.pro配置、LIBS添加、ld.so.conf文件添加、库文件权限设置等一系列问题

    对于Linux小白来说,使用Qt+官方提供的库和demo获取摄像头数据流居然都会到处碰壁,捯饬了一天才搞定,现在记录下所有的过程. 在大华官网下载的.run,安装挺顺利,由于版本问题,还卸载了两次,一 ...

  2. Qt中使用的工程文件(.pro文件)

    第一种常用方式: #模块设置,一般设置为app(生成应用程序,默认),subdirs(生成makefile文件编译subdirs指定的子文件夹),lib(生成库文件) TEMPLATE = app # ...

  3. QT工程的pro文件详解

    文章目录 QT工程的pro文件解析 简单的Pro文件示例 PRO文件基本配置选项 添加配置选项 常用的配置编译选项 QMAKE 变量操作简介 pro文件引入FFmpeg第三方库 为了在QT工程中添加第 ...

  4. Qt翻译文件ts中type理解

    QT翻译xxx.ts文件中type属性作用 以英文翻译为例,这里我的英文翻译文件为lan_English.ts. 在ts文件中,我们可以看到 中,type有如下几种属性: type="unf ...

  5. Blender图解教程:如何把外部图片打包到工程文件(*.blend)中

    Blender 2.8x版 有时候我们打开了一张外部图片为角色贴图,贴完图我们把保存的*.blend文件拷贝到另一台电脑上,发现贴图不见了.原因是,实际上我们在原电脑上的贴图只是引用了那个图片地址,而 ...

  6. qmake language qt 工程文件 配置文件 .pro .prl .prf .pri 词法 语法 for循环 判断语句 函数定义

    目录 词法 string 1.数据类型 2.特殊处理的内置变量 3.转义字符 关键字:包括语法关键字.特殊变量 语法 变量 变量.属性.环境变量 变量使用 全局变量作用域 函数定义和使用 判断语句和循 ...

  7. Qt的工程文件(.pro) -- 转

    Qt 工程 pro文件 工作中,感觉pro文件的有些内容真不太懂,现系统性的学习一下.于此备录,分享共勉. 为了更好的理解,先创建一个简单的工程作为实践. [1]创建一个pro文件 1.1 新建pro ...

  8. Qt工程文件(二)--pro文件详解

    PRO文件基本配置选项 QT:指定工程所要使用的Qt模块 VERSION:指定目标库版本号 TARGET:指定编译后生成的目标文件名称 TEMPLATE:指定编译的工程类型 A> app -建立 ...

  9. 在Qt工程文件中根据不同版本号使用不同源码

    众所周知,qmake里是不提供 #if (QT_VERSION >= QT_VERSION_CHECK(4, 5, 0)) // - #endif 这种语法的 qmake的语法是 条件{ -执行 ...

最新文章

  1. tf_geometric的安装
  2. C#连接池的详细分析(转)
  3. 1997年投稿,2021年发表!收到录用信那一刻,我即将退休……
  4. java语言概述、java语言特性、java语言发展史、java语言作用
  5. centos7源码安装mysql8.0_CentOS7下源码安装MySQL 8.x
  6. 深入剖析Linux IO原理和几种零拷贝机制的实现
  7. Linux DNS 服务配置 (非常详细)
  8. 任务之间的依赖(NSOperation)
  9. 【读书笔记《Android游戏编程之从零开始》】4.Android 游戏开发常用的系统控件(EditText、CheckBox、Radiobutton)
  10. 科沃斯扫地机器人电路原理图_科沃斯扫地机器人不工作故障维修(CEN550)
  11. 射频电路的原理及应用
  12. 机器人端的图形界面ssh远程显示方案
  13. 启发式搜索解决八数码难题
  14. linux学习shell基础
  15. python添加图片要怎么弄_python怎么实现添加图片
  16. 人类一败涂地做图教程_人类一败涂地地图制作教程 创意工坊自制地图方法
  17. 程序编辑,程序编译,程序连接。
  18. uva11689 Soda Surpler
  19. 计算机网络的安全性在哪里,计算机网络面临的安全性威胁可分为哪两类分别包含..._安全工程师_帮考网...
  20. pes时处理PTS和DTS的方法

热门文章

  1. 推荐算法炼丹笔记:非采样的负样本
  2. 直播技术:从性能参数到业务大数据,浅谈直播CDN服务监控
  3. 艾瑞发布2018视频云行业报告,网易云信领跑第一阵营
  4. 216位攻城狮送给程序猿的10个新年礼物
  5. CUDA学习(九十一)
  6. 指针数组的初始化和遍历,并且通过for循环方式、函数传参方式进行指针数组的遍历...
  7. PHP安装加载yaf扩展
  8. javascript 中 split 函数分割字符串成数组
  9. .Net 垃圾回收和大对象处理
  10. 3.Factory Method 工厂方法模式(创建型模式)