启用已废弃或过时的Qt方法
2023-06-13 09:17:28 时间
❝将Qt 4.x过渡到Qt 5.x,或Qt 5.x过渡到最新Qt版本,编译出超多的错误。本文介绍如何降低过渡到高版本带来的维护问题。
注意: 不提倡这种做法,仅供参考。
我们在使用新版的QtCreator自动生成pro文件中,有这么一段代码。实际上也没有开启。意思是「禁用所有Qt 6.0.0之前的API」。
# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
用法
这个宏每次自动创建pro文件都有QT_DISABLE_DEPRECATED_BEFORE
,就看看它有什么用吧。下列是Qt官方文档介绍。
This macro can be defined in the project file to
disable functions deprecated in a specified version of Qt or any earlier version.
The default version number is 5.0,
meaning that functions deprecated in or before Qt 5.0 will not be included.
Examples:
When using a future release of Qt 5,
set QT_DISABLE_DEPRECATED_BEFORE=0x050100 to disable functions deprecated in Qt 5.1 and earlier.
In any release, set QT_DISABLE_DEPRECATED_BEFORE=0x000000 to enable any functions,
including the ones deprecated in Qt 5.0
大概意思就是:「定义QT_DISABLE_DEPRECATED_BEFORE
宏的值可以禁用具体某个版本之前已废弃或过时的方法。」 比如:
# 禁用Qt 5.1版本之前已废弃或过时的方法,
# 这意味着可以使用Qt 5.1版本之后已废弃或过时的方法。
QT_DISABLE_DEPRECATED_BEFORE=0x050100
# 这个宏更夸张,能使用Qt 5.0版本之前已废弃或过时的方法。
QT_DISABLE_DEPRECATED_BEFORE=0x000000
使用
- pro项目文件添加以下代码:
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x000000
- 这样我们就可以使用Qt 5.0版本之前已废弃或过时的方法了。
- 例如QAbstractItemModel类的
reset()
方法。 QAbstractItemModel.h
节选源码:
#if QT_DEPRECATED_SINCE(5,0)
QT_DEPRECATED void reset()
{
beginResetModel();
endResetModel();
}
#endif
相关文章
- 基于qt的简单小游戏_中国象棋单机版2,0
- qt创建线程的几种方式_创建一个新线程的方法
- QT 播放器之列表隐藏
- Qt 用QMediaPlayer实现简易播放器
- 一文详解共享内存-附带QT共享内存Demo实现
- QT多线程实战_Qt多线程开发项目
- C/C++ Qt MdiArea 多窗体组件应用
- Qt Qml 开发超高清 4K、8K 视频直播视频客户端
- Qt多窗口编程详解
- Linux安装Qt:轻松搞定(linux如何安装qt)
- Linux下Qt环境快速安装指南(linux下qt安装)
- Linux下编译Qt程序的技术指南(linux编译qt程序)
- 在Linux系统下利用Qt程序设计实现的精彩之旅(linux与qt程序设计)
- Linux下的Qt编译器之旅(qt编译器linux)
- Linux下构建Qt程序步骤(linux打开qt)
- Linux下的Qt开发编程实践(linux版qt)
- 数据库使用Qt连接Oracle数据库:一步一步实现(qt连接oracle)
- 使用QT与MySQL结合展示图片的方法(qtmysql图片)
- 快速搭建Qt环境中的MySQL数据库(qt配置mysql数据库)
- Linux下Qt移植的探索与实践(linux移植qt)
- Linux Qt窗口:快速构建你的GUI界面(linux qt 窗口)
- QT开发MSSQL数据库技术实现(qt mssql)
- Qt实现MySQL数据库操作详解(qt操作mysql数据库)
- 从 Qt 中编译到 MySQL 的进程(qt mysql 编译)
- MySQL和QT不配套使用,无法实现事务处理(mysql不支持qt事务)