python-3.x 获取与Qtimer更新链接的openGLwidget

eh57zj3b  于 2022-12-20  发布在  Python
关注(0)|答案(1)|浏览(130)

我正在尝试用Pyqt5构建一个图形用户界面。在这个图形用户界面中有一个openGLwidget,它应该包含一个旋转的立方体。但是我不知道如何使立方体旋转。谢谢。这是设置函数

def setupUI(self):
    self.openGLWidget.initializeGL()
    self.openGLWidget.resizeGL(651,551)
    self.openGLWidget.paintGL = self.paintGL
    self.rotX=10.0
    self.rotY=0.0
    self.rotZ=0.0
    timer = QTimer(self)
    timer.timeout.connect(self.Update) 
    timer.start(1000)

下面是paintGL和update函数:
x一个一个一个一个x一个一个二个x

6bc51xsx

6bc51xsx1#

有不同的当前矩阵,参见glMatrixMode。投影矩阵应设置为当前GL_PROJECTION,模型视图矩阵应设置为GL_MODELVIEW
操作当前矩阵的操作(如gluPerspectiveglTranslateglRotate)不仅仅是设置一个矩阵,它们还指定一个矩阵,并将当前矩阵乘以新矩阵,因此必须在每帧开始时设置Identity matrix,每次设置glLoadIdentity

def paintGL(self):
    glClear(GL_COLOR_BUFFER_BIT)
    glColor3f(0,1,0)

    glMatrixMode(GL_PROJECTION)
    glLoadIdentity()
    gluPerspective(45, 651/551, 1, 100.0)

    glMatrixMode(GL_MODELVIEW)
    glLoadIdentity()
    glTranslatef(0, 0, -7)
    glRotate(self.rotX, 1, 0, 0)
    self.Cube()

调用update()以更新或重绘QOpenGLWidget
x一个一个一个一个x一个一个二个x

相关问题