You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PySide2正常运行的Textures示例在PySide6中报错的原因及解决方案

报错原因

Qt 6 版本已正式移除了此前就被标记为废弃的QGLWidget系列类,旧的QGLWidget相关API全部迁移到新的QOpenGLWidget类中,归属模块也同步调整。PySide6 是基于 Qt6 封装的绑定库,因此PySide6.QtOpenGL模块不存在QGLWidget属性,这是报错的直接原因。而 PySide2 基于 Qt5 开发,Qt5 仍保留了QGLWidget的向下兼容支持,因此该示例在 PySide2 环境下可以正常运行。这个报错同时说明 PySide6 自带的该示例没有及时适配 Qt6 的API变动,属于官方示例的兼容漏洞。

解决方案
  • 方案一:修改代码适配PySide6环境
    1. 新增模块导入:在代码导入部分添加from PySide6 import QtOpenGLWidgets
    2. 替换基类声明:把原代码中class GLWidget(QtOpenGL.QGLWidget):修改为class GLWidget(QtOpenGLWidgets.QOpenGLWidget):
    3. 调整其他废弃API:原QGLWidget的makeCurrent()、swapBuffers()等常用方法在QOpenGLWidget中都有兼容实现,绝大多数场景下完成前两步即可正常运行;如果遇到其他API报错,对照Qt6 OpenGL模块的迁移说明调整对应调用即可。
  • 方案二:直接使用PySide2运行
    如果不需要强制使用PySide6环境,直接在PySide2环境中运行该示例即可,不需要做任何代码修改。

补充说明:Windows环境下PySide安装完成后该示例默认存放路径为%LocalAppData%\Programs\Python\PythonXX\Lib\site-packages\PySideX\examples\opengl\textures,其中XX对应你的Python版本号,X对应PySide的大版本号(2或6)。

内容的提问来源于stack exchange,提问作者Giorgos Xou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 13:18:03