Python:在线程中运行QGLWidget绘制方法

时间:2015-12-14 15:08:07

标签: python multithreading opengl pyqt pyopengl

对于我的python程序,我有一个QT用户界面,主要由一个QGLWidget组成,可显示大量的点数(约2000万)。该程序现在运行非常不稳定,几乎不可能调整大小或移动窗口。

所以我尝试使用以下命令在自己的线程中运行QGL小部件的paintGL()方法:

from thread import start_new_thread

def paintGL(self):
    start_new_thread(paintGLThreading,())

def paintGLThreading(self):
    glClearColor(0.0, 0.0, 0.0, 1.0)
    <OpenGL paint code>

这引发了以下异常:

#Unhandled exception in thread started by <bound method GLWidget.paintGLThreading of <__main__.GLWidget object at 0x00000000043C5F78>>
Traceback (most recent call last):
  File "qtWin.py", line 54, in paintGLThreading
    glClearColor(0.0, 0.0, 0.0, 1.0)
  File "errorchecker.pyx", line 53, in OpenGL_accelerate.errorchecker._ErrorChecker.glCheckError (src\errorchecker.c:1218)
OpenGL.error.GLError: GLError(
        err = 1282,
        description = 'Der Vorgang ist ung\xfcltig.',
        baseOperation = glClearColor,
        cArguments = (0.0, 0.0, 0.0, 1.0)
)

有人可以告诉我该怎么做吗?

0 个答案:

没有答案