Shiboken6

6.8.0

  • PYSIDE-2792 通过名称查找转换器时,由嵌套类引起的潜在不匹配问题已修复。

  • PYSIDE-1735 生成的枚举代码已重构,以考虑底层类型。

6.7.3

  • PYSIDE-2834 枚举已从序列的参数类型检查中排除。这解决了在 Python 3.11 中显示的问题,导致使用了错误的函数重载。- PYSIDE-2780 修复了 Lazy 加载中的一个潜在引用计数错误。

6.7.2

  • PYSIDE-2764 已将被弃用的变量 cppApiVariableNameOld 的缺失声明添加到生成的头文件中。

  • PYSIDE-2769 在manylinux_2_28_x86_64上查找clang包含目录的问题已修复。

6.7.1

  • PYSIDE-2590 已添加一个用于全局内联命名空间范围的属性。

  • PYSIDE-2602 为添加的虚函数生成Python覆盖代码

  • PYSIDE-2602 已添加对返回类型修改的虚函数的支持,并相应地修复了函数 QWebEnginePage.javaScriptPrompt()。

  • PYSIDE-2675 已为多态ID表达式基类添加了代码片段占位符,修复了在使用派生类时可能出现的未定义行为。

6.7.0

  • PYSIDE-31 Shiboken.wrapInstance() 现在返回现有实例(保留ID)。

  • PYSIDE-560 libshiboken/有限API:不再需要的PyTypeObject插槽已在PyTypeObject辅助结构中被禁用。

  • PYSIDE-1106 已为函数/枚举类型条目(针对全局变量)添加了一个类型系统属性,该属性提供了对文档文件的提示。

  • PYSIDE-1106 现在可以从单独的 .rst 文件注入文档。

  • PYSIDE-1106 使用“append”注入到类中的文档现在将附加到类描述中,而不是写在页面的末尾。

  • PYSIDE-1106 文档:现在可以为添加的函数的参数注入文档。

  • PYSIDE-2230 Python 3.12: 根据PEP 697,现在使用隐藏类型扩展而不是影子字典。

  • PYSIDE-2404 生成的类型索引常量不再使用大写。大写形式将保留至PySide7中弃用。

  • PYSIDE-2447 已添加一个用于生成子模块的类型系统属性。

  • PYSIDE-2535 现在可以通过类型系统属性禁用生成处理PySide6信号的Qt元对象函数。这对于使用动态元对象的类(例如QDBusInterface)非常有用。

6.6.3

  • PYSIDE-2505 命令行选项解析已改进,以在包含路径中跳过空标记。

  • PYSIDE-2619 shibobken 代码中的 ODR 违规问题已修复,从而启用了 LTO。

6.6.2

  • PYSIDE-1106 文档:已添加一个选项来禁用继承图。

  • PYSIDE-1735 当所有枚举值都被弃用时,生成的代码中的错误已修复。

  • PYSIDE-2404 现在可以禁用pyi文件生成以进行调试。

  • PYSIDE-2530 yocto 交叉构建已修复,可以找到 shiboken_wrapper.sh。

  • PYSIDE-2577 文档/doxygen:查询常量函数的错误已修复。

6.6.1

  • PYSIDE-1958 跨平台构建支持:已添加关于包含解析的额外调试语句(取决于详细程度)。shiboken 现在也可以处理系统包含目录中的 Qt 头文件。现在可以通过 CMake 变量传递额外的生成器标志。

  • PYSIDE-2505 API提取器命令行参数解析中的错误处理已得到改进。

  • PYSIDE-2506 生成的代码进行多重继承偏移量计算已经得到简化。

6.6.0

  • 类型系统语法:现在可以在上指定属性“allow-thread”、“exception-handling”和“snake-case”。- libshiboken的类AutoDecRef的转换操作符已被弃用,该类现在可移动。

  • PYSIDE-1790 已添加对右值引用的实验性支持。

  • PYSIDE-2230 已添加对 Python 3.12 的初步支持。

  • PYSIDE-2316 正确注册智能指针签名

  • PYSIDE-2394 现在可以在类型系统中覆盖C++的弃用属性。

  • PYSIDE-2446 数字协议的更多特殊功能已被添加,例如使用 intfloat 的 operator int()、operator double() 以及 abspow

  • PYSIDE-2462 repr 函数的智能指针已改进,以显示指针对象的信息。同样,智能指针的 dir() 现在包括指针对象的条目。

6.5.3

  • 生成器进度消息已更改,以避免在使用ninja时丢失警告。

  • PYSIDE-2174 使用 C++ 17 时,不再生成 的包含。

  • PYSIDE-2394 现在可以覆盖C++的弃用属性。

  • PYSIDE-2411 现在已正确记录了修改后的无返回值函数的返回类型。

  • PYSIDE-2446 现在可以对数值运算符使用移除修改功能。

  • PYSIDE-2465 在Python 3.11.5中出现的测试失败问题已修复。

6.5.2

  • PYSIDE-1735 使用typedef作为基础类型的枚举的有符号性检测已修复。

  • PYSIDE-2335 在Python中重写的虚拟方法中引发的不可引发异常已实现。如果可能,它们现在由堆栈上的处理程序处理,否则将打印出来。

  • PYSIDE-1669 修复了选项 –no-implicit-conversions

6.5.1

6.5.0

  • shiboken6 现在为较新的 Python 版本(不包括 Limited API)生成对新的函数 PyObject_Vectorcall() 或 PyObject_CallNoArgs() 的调用,用于重写的虚方法。

  • shiboken6 现在可以根据预处理条件生成类的排除项,例如通过 Qt 配置系统。

  • PYSIDE-454 现在可以为智能指针实例指定名称和命名空间。

  • PYSIDE-1019 现在生成了Qt属性的文档。

  • PYSIDE-1106 现在生成了Qt信号的文档。

  • PYSIDE-1106 shiboken6/文档:使用 py:method 指令

  • PYSIDE-2088 64位枚举的溢出问题已修复。

  • PYSIDE-2099 添加了一个选项 --lean-header,用于生成前向声明而不是将包含内容放入模块头文件中。这大大减少了依赖关系,但可能需要为注入的代码指定额外的包含内容。

  • PYSIDE-2133 整数/浮点类型的重载排序已改进,以避免溢出。

  • PYSIDE-2256 代码生成器不再生成goto语句。

  • PYSIDE-2174 添加了一个用于不透明容器的类型系统XML元素,消除了重复容器元素的需要。

  • PYSIDE-2174 已添加对 std::array (C++ 11) 和 std::span 的支持。

  • PYSIDE-2255 现在可以覆盖抽象的私有虚方法。

  • PYSIDE-2264 修复了PyPy版本7.3.10及更高版本的问题。

6.4.2

  • PYSIDE-74 生成的富比较代码中关于不可达代码的警告已修复。

  • PYSIDE-1012 已添加缺少的 g++ 11.3 包含文件。

  • PYSIDE-1019 从Q_PROPERTY解析通知规范

  • PYSIDE-1019 文档:QObject 属性现在以类似于 C++ 文档的方式进行了记录。

6.4.1

  • PYSIDE-2099 添加了选项 --lean-header,用于生成前向声明而不是包含到模块头文件中。这大大减少了依赖关系,但可能需要为注入的代码指定额外的包含。

  • PYSIDE-1106 信号(包括私有信号)的文档已修复。

  • PYSIDE-1106 文档现在使用带有标记的 py:method 指令来表示抽象方法。

  • PYSIDE-1844 构建系统:在Windows上,shiboken现在由一个包装器执行,该包装器提供了包含Qt和libclang的适当PATH,从而无需设置PATH。

  • PYSIDE-2088 已添加一种指定类型以转换枚举值的方法,修复了TextOption.IncludeTrailingSpaces发生的溢出问题。

6.4.0.1

  • PYSIDE-2088 添加一种指定类型以转换枚举值的方法

  • PYSIDE-2088 libshiboken: 修复枚举值溢出

6.4.0

  •           当使用 C++ 20 时,现在可以识别太空船比较运算符。
    
  •           函数修改的签名现在也允许指定未解析的类型。
    
  • PYSIDE-454 已添加对 std::unique_ptr 指针的支持。

  • PYSIDE-1735 Python 枚举使用 Python (3.10) 的最新实现,以提高兼容性和速度。

  • PYSIDE-1735 签名模块的初始化被移入Shiboken并重新安排。这对于新的向后兼容的PyEnum模块是必要的。

  • PYSIDE-1735 新的Python枚举尽可能与旧版本兼容。再次允许使用Qt.Alignment()而不是Qt.AlignmentFlag(0),并且始终允许默认值为0。

  • PYSIDE-1735 大多数以前的 IntEnum/IntFlag 已被纯 Enum/Flag 类以与其他实现兼容的方式替换。

  • PYSIDE-1735 Shiboken 现在会生成关于使用已弃用的枚举和已弃用的枚举值的警告。

  • PYSIDE-1764 现在可以指定要生成的函数列表,而不是删除不需要的函数。

  • PYSIDE-1932 当启用PySide扩展时,Q_ENUM辅助函数qt_getEnumMetaObject()和qt_getEnumName()现在会自动被拒绝。

  • PYSIDE-1939 引入了一个类型系统属性,用于将父所有权启发式限制到相关类。

  • PYSIDE-454 类型“handle”和“value-handle”已被添加到智能指针类型系统元素中。

  • PYSIDE-661 生成的错误消息已被移至库中,显著减少了模块的大小。

  • PYSIDE-1735 传播C++枚举弃用

  • PYSIDE-1735 shiboken 6: 生成关于已弃用枚举/值的警告

  • PYSIDE-1812 已添加用于编译器、路径和平台的命令行选项。

  • PYSIDE-1887 元类型注册现在可以在类型系统中进行配置。

  • PYSIDE-1905 添加了一种指定具有完整自定义实现的自由函数的方法(绕过生成的参数转换和重载决策代码)。

  • PYSIDE-1909 现在可以指定一个函数来获取多态类的类型名称。

  • PYSIDE-1909 对于带有id表达式的类的类型发现已修复。

  • PYSIDE-1933 现在为所有智能指针基类生成了转换器。

  • PYSIDE-1939 现在可以通过属性指定父对象所有权的启发式方法。

  • PYSIDE-1995 异常现在通过返回值所有权修改传播。

  • PYSIDE-2017 修改后的pyi函数返回类型现在用于签名。签名也不再包含已删除的参数。

  • PYSIDE-2025 已修复带有参数名称的添加函数的文档注入问题。

  • PYSIDE-2040 现在在 pkg-config 文件中使用了 libdir 的完整路径。

  • PYSIDE-2046 由添加函数的无效返回类型引起的崩溃问题已修复。

6.3.2

  • PYSIDE-1964 关于错误使用关键字参数的错误信息已得到改进。

  • PYSIDE-1988 修复了一个错误的 PySequence_Check() 类型检查,改为 PyTuple_Check(),这个问题仅在 Python 3.11 中出现。

6.3.1

  • PYSIDE-1932 当启用PySide扩展时,Q_ENUM辅助函数qt_getEnumMetaObject()和qt_getEnumName()现在会自动被拒绝。

  • PYSIDE-1909 现在可以注入一个函数来获取多态类的类型名称。

  • PYSIDE-1909 现在为所有设置了id表达式的类生成了类型发现代码。

  • PYSIDE-1933 现在为所有智能指针基类生成了转换器。

6.3.0

  • 在有限API中添加了一个快速路径,用于将Python字符串转换为UTF-8。

  • PYSIDE-454 已添加用于reset()的属性和智能指针的空检查。

  • PYSIDE-454 现在接受 None 作为共享指针参数,并且 nb_bool 已添加到共享指针中。 - PYSIDE-454 使用 std::shared_ptr 已经简化;不再需要为类声明指定所有实现头文件以使其完全可见。

  • PYSIDE-535 生成的代码现在可以与PyPy一起使用。

  • PYSIDE-656 在重写的虚方法中,错误状态现在被正确处理。

  • PYSIDE-1605 现在可以通过相应地修改返回类型,将返回容器的getter修改为返回一个不透明的容器。

  • PYSIDE-1605 为连续不透明容器添加了reserve()/capacity()的绑定。

  • PYSIDE-1605 已修复生成接受容器指针的函数的代码。

  • PYSIDE-1660 除非在类型系统文件中存在,否则原始类型现在已内置。

  • PYSIDE-1660 宏 PyObject_Check() 已从 libshiboken 中移除。

  • PYSIDE-1666 已添加对 std::wstring 的支持。

  • PYSIDE-1666 已添加用于标准容器类型转换的预定义XML模板。

  • PYSIDE-1666 常见的标准容器(std::list、std::vector、std::pair、std::map、std::unordered_map)现在已内置,除非它们已存在于类型系统文件中。

  • PYSIDE-1666 已添加标准容器类型的预定义模板。

  • PYSIDE-1666 现在支持接受C++集合的函数。在返回时,C++集合实例将被转换为PySets而不是PyLists。

  • PYSIDE-1669 添加了一个选项来禁用隐式转换。

  • PYSIDE-1675 .pyi 文件生成已改进,以具有正确的 slot()、PathLike 和更好的枚举处理。

  • PYSIDE-1691 在为生成的代码限定函数参数默认值时,shiboken 不再将无法找到的每个标识符视为枚举值,也不再为其添加类作用域。这可能需要手动添加一些替换默认表达式的修改。

  • PYSIDE-1691 确定函数参数的枚举默认值的作用域已得到改进。现在正确处理了 nullptr。

  • PYSIDE-1684 修复了在重载排序器中找不到类时崩溃的问题。

  • PYSIDE-1697 修复了生成代码中关键字参数的内存泄漏问题。支持参数转换规则。

  • PYSIDE-1710 改进了嵌入式应用程序的错误处理,并将内置模块视为有效模块。

  • PYSIDE-1711 现在生成了智能指针指向对象的比较运算符。

  • PYSIDE-1766 XML 元素 native-to-target 和 target-to-native 现在

  • PYSIDE-1790 在C++中标记为final的类现在被创建为final的Python类。

  • PYSIDE-1790 为连续不透明容器添加了 data()/constData() 的绑定。

  • PYSIDE-1790 现在无论是否存在实例化,都会为指定类型生成不透明的容器。

  • PYSIDE-1802 代码模型解析器已调整为将 .h 文件视为 C++ 文件。

  • PYSIDE-1806 添加了对clang版本的配置检查。

6.2.4

  • PYSIDE-1806 已添加对clang版本的配置检查。

6.2.3

  • PYSIDE-1605 为连续不透明容器添加了reserve()/capacity()的绑定。

  • PYSIDE-1766 关于转换规则标签的文档已更新,现在可以在参数转换规则中使用native-to-target/target-to-native。

6.2.2

  • PYSIDE-454 向智能指针添加更多方法:reset() 和空值检查,测试操作符 nb_bool,以及处理 None 参数。

  • PYSIDE-535 移除 PyType_Type 的类型修补并修复枚举的元类型。

  • PYSIDE-1499 icon.addPixmap(str) 的隐式转换已被替换为接受 PyPathLike 的显式版本。

  • PYSIDE-1675 .pyi 文件生成已改进,以具有正确的 slot()、PathLike 和更好的枚举处理。

  • PYSIDE-1691 在为生成的代码限定函数参数默认值时,shiboken 不再将无法找到的每个标识符视为枚举值,也不再为其添加类作用域。这可能需要手动添加一些替换默认表达式的修改。

  • PYSIDE-1710 改进了嵌入式应用程序的错误处理,并将内置模块视为有效模块。

  • PYSIDE-1666 处理 PySets 作为函数参数

  • PYSIDE-1684 当在重载排序器中找不到类时,不要崩溃

  • PYSIDE-1691 添加了CborTag:在shiboken中包含了改进以支持此类。

  • PYSIDE-1697 修复关键字参数处理中的内存泄漏

  • PYSIDE-1703 修复测试类型系统中的一些整数类型

6.2.1

  • PYSIDE-656 现在,无论是否有错误,重写的虚方法总是能正确完成。

  • PYSIDE-1669 添加了一个选项来禁用隐式转换。

  • PYSIDE-1605 现在可以通过相应地修改返回类型,将返回容器的getter修改为返回一个不透明的容器。

  • PYSIDE-1660 记录内置自定义类型

  • PYSIDE-1686 适应 LLVM 12.01

  • PYSIDE-1691 处理没有值的枚举

6.2.0

  • PYSIDE-535 接受空字典作为将未使用的关键字字典设置为nullptr的替代方案。

  • PYSIDE-535 类型扩展宏被替换为普通函数调用。这不仅是支持PyPy的前提条件,也是类型安全性的改进。

  • PYSIDE-535 类型创建已经完全封装。现在可以为PyPy重写实现。

  • PYSIDE-535 定义 SbkObjectType 为 PyTypeObject,并从 API 中移除 SbkObjectType

  • PYSIDE-535 SbkObjectType 现在是 PyTypeObject 的 typedef,并且 SbkType_FromSpec() 已更改为返回 PyType_Object *。

  • PYSIDE-535 现在可以在早期的 Python 版本中从枚举类型(如 QtCore.Key)派生类。

  • PYSIDE-1334 现在除了Qt风格的isNull()方法外,operator bool也可以用于布尔转换(nb_bool)。

  • PYSIDE-1436 Zip导入器已针对Python 3.4 API进行了重写,以避免在Python 3.10中出现警告。

  • PYSIDE-1436 由于 Python 3.10 中 typing.py 的未记录更改,.pyi 文件的解析器需要更新。

  • PYSIDE-1436 二进制标志运算符仅检查了cppArg,而没有检查cppSelf。当参数交换时,这是必要的。由于在调试模式下改进了错误检查,在Python 3.10中识别到了这个问题。

  • PYSIDE-1436 2012年样本XML中的一个非常古老的引用计数错误导致了Python 3.10中的崩溃。由于Python的引用计数现在更加精确,因此发现了这个错误。

  • PYSIDE-1588 现在可以指定一个函数参数类型出现在 .pyi 文件中。

  • PYSIDE-1605 已添加对不透明C++序列容器的支持,允许直接传递包装的C++容器,而无需在Python序列之间来回转换。

  • PYSIDE-1626 不同功能选择的共存现在可以正常工作了,特别是对于UIC文件和继承。

  • PYSIDE-1621 Python支持文件现在总是嵌入的。文件系统中不再安装物理副本。

  • PYSIDE-1637 Shiboken模块的临时别名shiboken6.shiboken6已被移除。现在只有一个明确的shiboken6.Shiboken。

  • PYSIDE-1653 隐藏基类成员函数和使用声明的处理已修复。

  • PYSIDE-1655 类型系统解析器中的堆栈使用后范围 ASAN 问题已修复。

  • PYSIDE-1660 像 PyObject、PySequence 这样的 CPython 类型现在已内置到 shiboken6 中,不再需要在类型系统文件中指定。

  • PYSIDE-1568 已禁用其C++包装器被禁用的抽象类的构造。

  • 现在可以在类型系统中为自定义类型指定检查函数。

  • 为新增函数的签名引入了一个新的、更简单的标准化函数(这意味着例如const-ref被保留)。

  • C++ 包装类(原生)中 %PYARG_0 的替换已得到改进,不再需要添加对 PyObject * 的强制转换。

6.1.3

  • PYSIDE-1621 支持Python文件的嵌入现在完全是虚拟的。不再涉及任何文件系统文件。

  • PYSIDE-1626 不同功能选择的共存现在可以正常工作了,特别是对于UIC文件和继承。

  • PYSIDE-1112 shiboken6/文档:从代码注入添加一个链接到类型系统变量

  • PYSIDE-1252 ApiExtractor: 为tr()的add-function添加类方法属性

6.1.2

  • 现在可以在类型系统中为自定义类型指定检查函数。

  • PYSIDE-1588 生成的签名现在包含由修改替换的类型。

6.1.1

  • PYSIDE-1338 包含了一个使用全局标题的选项。

6.1.0

  • PYSIDE-504 –avoid-protected-hack 现在也可以与 gcc、clang 一起使用。

  • PYSIDE-1338 添加使用全局头文件的选项

  • PYSIDE-1477 现在可以使用命令行选项或项目文件指定clang选项,从而允许进行交叉编译。

6.0.4

  • PYSIDE-1529 修复了注册静态字段时可能导致的崩溃问题。

6.0.3

  • PYSIDE-1515 libclang 的构建类型现在已正确确定。

6.0.2

  • PYSIDE-841 文档生成代码中的一些错误已被修复。

  • PYSIDE-1501 clang解析器已修复,能够处理一些Boost头文件。

6.0.1

  • PYSIDE-487 防止重复调用模块初始化函数

  • PYSIDE-1448 修复了在目标/结束时注入的代码被多个重载ID调用的问题

  • PYSIDE-1470 允许使用 shiboken.delete() 来删除 Q*Application