zoukankan      html  css  js  c++  java
  • 使用Qt5Compat库从Qt 5移植到Qt 6

    从Qt 5移植到Qt 6的过程一直很容易。在Qt 6的整个开发过程中,一直有意识地努力保持与Qt 5的尽可能多的源兼容性。尽管如此,移植仍需要一些努力。这篇简短的文章总结了移植到Qt 6时所需的一些步骤。

    在Qt 5中,有些类别已经有现有的替代品,并且某些类别在Qt 6开发阶段得到了继任者因此,能够同时使用旧的和新的Qt版本编译代码可能很有意义。这样可以确保将不使用任何版本的代码进行编译的工作量减至最少,从而使您的应用程序或库可以继续与Qt 5和Qt 6一起工作。另一个优点是,现有的单元测试对于大多数版本都可以继续工作。移植的持续时间以及移植代码所导致的回归与Qt 6中引入的错误很容易区分开。

    种类

    下表列出了在Qt 6中已删除但为了便于移植而保留在Qt5Compat中的类。它还包含将在Qt6中的新代码中使用的类。

    Qt 5类  Qt 6更换
    QLinkedList 清单
    QRegExp QRegularExpression
    QStringRef QStringView
    QXmlSimpleReader QXmlStreamReader
    QTextCodec QStringConverter
    QTextEncoder QStringEncoder
    QTextDecoder QStringEncoder

    调整构建系统

    如果要继续使用上述Qt 5类,则首先需要调整构建系统以链接到新的Qt5Compat模块。对于qmake构建系统,将以下行添加到.pro文件中:

    QT += core5compat

    如果您已经将应用程序或库移植到了cmake构建系统,请将以下内容添加到您的 CMakeList.txt

    PUBLIC_LIBRARIES
    Qt::Core5Compat

    修复包括

    除了显然需要进行的构建系统更改外,您可能还需要修复前面提到的类的包含。您的实际代码可能如下所示:

    #include <QtCore / QRegExp>

    需要针对新的Qt5Compat模块进行更新:

    #include <QtCore5Compat / QRegExp>

    或使用更加简单和可移植的版本:

    #include <QRegExp>

    期待

    随着Qt 6的出现,您可能已经考虑测试新的Qt 6 beta版本。如果您的代码受上述一些Qt Core类更改的影响,这也将允许进行早期测试。对于您可能发现的任何问题,请向bugreports.qt.io提交详细的错误报告提交错误报告时,请记住提及发现问题的Qt版本,并检查是否存在重复项和已知问题也欢迎您加入Qt Project邮件列表和开发人员论坛中的讨论。

    https://www.qt.io/blog/porting-from-qt-5-to-qt-6-using-qt5compat-library

  • 相关阅读:
    Linux安装gitlab
    logback日志配置
    spring源码-aop动态代理-5.3
    【转】阿里云免费SSL证书申请与安装使用(IIS7)
    WebApi 全局使用filter
    Mint-UI Picker 三级联动
    P标签莫名有了margin-top值的原因
    Vue为v-html中标签添加CSS样式
    【转】C# string数组转int数组
    【转】SQLServer汉字转全拼音函数
  • 原文地址:https://www.cnblogs.com/findumars/p/14037985.html
Copyright © 2011-2022 走看看