I recently painted simple scenes such as triangles and polygons using PyOpenGL. The code was pretty simple, and using different GL_TRIANGLES and GL_POLYGON did not raise any questions.
After that, I decided to add a graphical interface to my application and download pyqt4. So now I am using QtOpenGL and I am stuck. After reading several tutorials, one thing I could do was this . Here is the code: x
import sys import math from PyQt4 import QtCore, QtGui, QtOpenGL try: from OpenGL import GL except ImportError: app = QtGui.QApplication(sys.argv) QtGui.QMessageBox.critical(None, "OpenGL hellogl", "PyOpenGL must be installed to run this example.") sys.exit(1) class Window(QtGui.QWidget): def __init__(self): super(Window, self).__init__() self.glWidget = GLWidget() self.button = self.createButton() mainLayout = QtGui.QHBoxLayout() mainLayout.addWidget(self.glWidget) mainLayout.addWidget(self.button) self.setLayout(mainLayout) self.setWindowTitle("Hello GL") def createButton(self): button = QtGui.QPushButton("&WOOF") button.clicked.connect(self.close) return button class GLWidget(QtOpenGL.QGLWidget): def __init__(self, parent=None): super(GLWidget, self).__init__(parent) self.trolltechPurple = QtGui.QColor.fromCmykF(0.39, 0.39, 0.0, 0.0) def minimumSizeHint(self): return QtCore.QSize(100, 300) def sizeHint(self): return QtCore.QSize(400, 400) def initializeGL(self): self.qglClearColor(self.trolltechPurple.dark()) def paintGL(self): GL.glMatrixMode(GL.GL_MODELVIEW) GL.glLoadIdentity() GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT) GL.glColor3f(1,0,0) GL.glRectf(-1,-1,1,0) GL.glColor3f(0,1,0) GL.glRectf(-1,0,1,1) GL.glBegin(GL_TRIANGLES) glVertex2f(3.0, 3.0) glVertex2f(5.0, 3.0) glVertex2f(5.0, 5.0) glVertex2f(6.0, 4.0) glVertex2f(7.0, 4.0) glVertex2f(7.0, 7.0) glEnd() GL.glFinish() if __name__ == '__main__': app = QtGui.QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_())
When trying to use, for example, GL_TRIANGLES, I have this error:
NameError: global name 'GL_TRIANGLES' is not defined
Perhaps I did not look around enough, but I did not find any solution.
So my question is how to draw different shapes inside my QGLWidget.
Thank you for your help.