LINUX.ORG.RU

python3 + PyQt5 + PyOpenGL = black screen

 pyopengl, ,


0

2

Прошу прощения у ярых ненавистников винды, но не работает именно там.
На Ubuntu 13.10 все работает замечательно, а на глючной винде 7 x64 запускается приложения и вместо OpenGL сцены черный экран, сцена как бы перерисовывается, но не отображается. Драйвера стоят. В консоль ничего не пишет.
Вот код, который пытаюсь выполнить:

# -*- coding: utf-8 -*-
# file graphics_window.py

from OpenGL.GL import *
from PyQt5.QtOpenGL import *


class GraphicsWindow(QGLWidget):
	def __init__(self, parent=None):
		super(GraphicsWindow, self).__init__(parent)

	def paintGL(self):
		glColor3f(0.0, 0.0, 1.0)
		glRectf(-5, -5, 5, 5)
		glColor3f(1.0, 0.0, 0.0)
		glBegin(GL_LINES)
		glVertex3f(0, 0, 0)
		glVertex3f(20, 20, 0)
		glEnd()

	def resizeGL(self, w, h):
		glMatrixMode(GL_PROJECTION)
		glLoadIdentity()
		glOrtho(-50, 50, -50, 50, -50.0, 50.0)
		glViewport(0, 0, w, h)

	def initializeGL(self):
		glClearColor(0.0, 0.0, 0.0, 1.0)
		glClear(GL_COLOR_BUFFER_BIT)
В main вызывается так:
from PyQt5 import QtWidgets
import graphics_window


class MyClass(QtWidgets.QWidget):
	def __init__(self, parent=None):
		super(MyClass, self).__init__(parent)
	
		self.graphics_window = graphics_window.GraphicsWindow()
		self.graphics_window.show()

def main():
	app = QtWidgets.QApplication(sys.argv)

	my_class = MyClass()
	my_class.show()

	app.exec_()

if __name__ == '__main__':
	main()
Может кто-то сталкивался с подобным?
Спасибо!



Последнее исправление: Glaciuse (всего исправлений: 2)

Проблема в винде. Могу порекомендовать сходить на какой-нибудь винфак, но что там помогу по тех.вопросу очень маловероятно.

Siado ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.