本文整理汇总了Python中PyQt4.QtOpenGL.QGLWidget.doneCurrent方法的典型用法代码示例。如果您正苦于以下问题:Python QGLWidget.doneCurrent方法的具体用法?Python QGLWidget.doneCurrent怎么用?Python QGLWidget.doneCurrent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PyQt4.QtOpenGL.QGLWidget
的用法示例。
在下文中一共展示了QGLWidget.doneCurrent方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Figure
# 需要导入模块: from PyQt4.QtOpenGL import QGLWidget [as 别名]
# 或者: from PyQt4.QtOpenGL.QGLWidget import doneCurrent [as 别名]
class Figure(QGraphicsView):
def __init__(self, *args, **kwargs):
super(Figure, self).__init__(*args, **kwargs)
# Creation of the Plotting class:
# Then we add it as background of the View:
self._context = QGLWidget(QGLFormat(QGL.NoAccumBuffer))
self.setViewport(self._context)
# create the context for Opengl
self._context.makeCurrent()
# And we set it as scene for the View:
self.scene = OGLWidget()
self.setScene(self.scene)
self.scene.initializeGL()
# Set some properties and palette to have a black background:
color = QColor()
color.black()
self.background_color = color
# unset the context ???
self._context.doneCurrent()
@property
def background_color(self):
return self._background_color
@background_color.setter
def background_color(self, background_color):
self._background_color = background_color
self.setAutoFillBackground(True)
self.setPalette(
QPalette(
self._background_color
)
)
def addWidget(self, wid):
tmp = self.scene.addWidget(wid, Qt.Window)
tmp.setFlag(
QGraphicsItem.ItemIsMovable
)
tmp.setFlag(
QGraphicsItem.ItemIsSelectable
)
tmp.setCacheMode(
QGraphicsItem.DeviceCoordinateCache
)
def resizeEvent(self, event):
if self.scene:
self.scene.resizeGL(event.size().width(), event.size().height())
super(Figure, self).resizeEvent(event)
def keyPressEvent(self, event):
super(Figure, self).keyPressEvent(event)
if (
event.modifiers() == Qt.ControlModifier and
event.key() == Qt.Key_W
) or event.key() == Qt.Key_Escape:
print("Quiting!")
self.close()
else:
event.ignore()
def __getitem__(self, ind):
return self.scene.lines[ind]
def __delitem__(self, ind):
pass
@property
def axes(self):
return self.scene.lines
@axes.setter
def axes(self, value):
# store the instance for plots
self.scene.lines = value
# create shaders if there is one
self._context.makeCurrent()
try:
value.createShaders(self._context)
except AttributeError:
pass
self._context.doneCurrent()
# add widget created by user
try:
wid = value.createWidget()
if wid:
self.addWidget(wid)
except AttributeError:
pass