【发布时间】:2021-11-04 04:51:33
【问题描述】:
我正在尝试使用 pyqtgraph 为应用程序获取 3D 渲染,但我收到一个我不理解的错误。
我在未连接到 Internet 的远程桌面上运行脚本(它必须在远程桌面上运行)。因此,我通过 .whl 文件安装了 pyqtgraph、pyopenGL 和 pyqt5(已经安装了 Anaconda 发行版)
这是一个应该只显示一个空白 glViewport 的小代码:
# -*- coding: utf-8 -*-
import sys
import pyqtgraph.opengl as gl
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qt
class Render3D(object):
def __init__(self):
self.app = QApplication(sys.argv)
self.fen = QWidget(flags=Qt.Dialog)
self.fen.setGeometry(100, 100, 1000, 800)
self.fen.setWindowTitle("My window")
self.disposition = QGridLayout()
# viewport
self.w = gl.GLViewWidget()
self.disposition.addWidget(self.w, 0, 0)
self.fen.setLayout(self.disposition)
self.fen.show()
sys.exit(self.app.exec_())
if __name__ == "__main__":
test = Render3D()
我知道我的视口中没有项目(故意停用,因为错误来自视口本身)。我可以在另一台计算机上运行此脚本而不会出现任何错误。
这是我在远程桌面上遇到的错误:
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\lib\site-packages\pyqtgraph\opengl\GLViewWidget.py", line 246, in paintGL
glViewport(*self.getViewport())
File "C:\ProgramData\Anaconda3\lib\site-packages\OpenGL\platform\baseplatform.py", line 415, in __call__
return self( *args, **named )
File "C:\ProgramData\Anaconda3\lib\site-packages\OpenGL\error.py", line 230, in glCheckError
raise self._errorClass(
OpenGL.error.GLError: GLError(
err = 1282,
description = b'op\xe9ration non valide',
baseOperation = glViewport,
cArguments = (0, 0, 978, 778)
)
你知道错误可能来自哪里吗?
【问题讨论】:
-
尝试在
import pyqtgraph.opengl as gl之前移动from PyQt5.QtWidgets import *from PyQt5.QtCore import Qt -
@eyllanesc 它只是将 cArguments 值更改为 (0, 0, 640, 480) 但仍然显示错误