有没有办法指定在 QML 图表中使用特定版本的 OpenGL?

问题描述 投票:0回答:1

我正在开发一个应用程序,该应用程序可以用相当多的点(~2^16 点)来绘制一些数据。如果不使用 OpenGL,这会非常延迟,但使用 OpenGL 时运行起来非常流畅。 我正在使用 PySide6 (Python 3.9.1) 和 QML 6.7。

问题是它在我的系统上运行良好,但是当同事克隆我的存储库时,他看不到

LineSeries
。应用程序没有抛出任何错误,并且打印该系列的
count
属性显示数据在那里。但是,当 OpenGL 在
LineSeries
上关闭时,它是可见的(但有延迟)。

我在两台机器上运行了 DirectX Diagnostics,他的图形驱动程序已有两年历史(为简洁起见,我将仅附加图形数据来连接两个输出),所以我认为可能就是这样。

此应用程序最终将分发到多台计算机,我希望它能够开箱即用,而无需更新这些计算机上的图形驱动程序。

有没有办法指定Qt/QML使用的OpenGL版本?我想如果我可以使用稍微旧版本的 OpenGL,它更有可能受到旧驱动程序的支持。

python-3.x qml pyside6
1个回答
0
投票

要强制 Qt6 使用 OpenGL,您需要设置 https://doc.qt.io/qt-6/qquickwindow.html#setGraphicsApi

QSGRendererInterface::OpenGL
要指定使用哪个 OpenGL 版本(并选择核心/兼容性配置文件 MSAA 等),您需要设置默认值
QSurfaceFormat
https://doc.qt.io/qt-6/qsurfaceformat.html#setDefaultFormat OpenGL通过设置主要版本和次要版本来选择版本。

这两个静态函数都必须在 QApplication 构造函数之前调用才能生效。

© www.soinside.com 2019 - 2024. All rights reserved.