本文整理汇总了Python中PyQt4.QtGui.QTransform.transposed方法的典型用法代码示例。如果您正苦于以下问题:Python QTransform.transposed方法的具体用法?Python QTransform.transposed怎么用?Python QTransform.transposed使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PyQt4.QtGui.QTransform
的用法示例。
在下文中一共展示了QTransform.transposed方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: ImageScene2D
# 需要导入模块: from PyQt4.QtGui import QTransform [as 别名]
# 或者: from PyQt4.QtGui.QTransform import transposed [as 别名]
class ImageScene2D(QGraphicsScene):
"""
The 2D scene description of a tiled image generated by evaluating
an overlay stack, together with a 2D cursor.
"""
@property
def stackedImageSources(self):
return self._stackedImageSources
@stackedImageSources.setter
def stackedImageSources(self, s):
self._stackedImageSources = s
s.sizeChanged.connect(self._onSizeChanged)
@property
def showTileOutlines(self):
return self._showTileOutlines
@showTileOutlines.setter
def showTileOutlines(self, show):
self._showTileOutlines = show
self.invalidate()
@property
def sceneShape(self):
"""
The shape of the scene in QGraphicsView's coordinate system.
"""
return (self.sceneRect().width(), self.sceneRect().height())
@sceneShape.setter
def sceneShape(self, sceneShape):
"""
Set the size of the scene in QGraphicsView's coordinate system.
sceneShape -- (widthX, widthY),
where the origin of the coordinate system is in the upper left corner
of the screen and 'x' points right and 'y' points down
"""
assert len(sceneShape) == 2
self.setSceneRect(0,0, *sceneShape)
#The scene shape is in Qt's QGraphicsScene coordinate system,
#that is the origin is in the top left of the screen, and the
#'x' axis points to the right and the 'y' axis down.
#The coordinate system of the data handles things differently.
#The x axis points down and the y axis points to the right.
r = self.scene2data.mapRect(QRect(0,0,sceneShape[0], sceneShape[1]))
sliceShape = (r.width(), r.height())
if self._dirtyIndicator:
self.removeItem(self._dirtyIndicator)
del self._dirtyIndicator
self._dirtyIndicator = None
self._tiling = Tiling(sliceShape, self.data2scene)
self._dirtyIndicator = DirtyIndicator(self._tiling)
self.addItem(self._dirtyIndicator)
self._onSizeChanged()
if self._tileProvider:
self._tileProvider.notifyThreadsToStop() # prevent ref cycle
self._tileProvider = TileProvider(self._tiling, self._stackedImageSources)
self._tileProvider.changed.connect(self.invalidateViewports)
def invalidateViewports( self, rectF ):
'''Call invalidate on the intersection of all observing viewport-rects and rectF.'''
rectF = rectF if rectF.isValid() else self.sceneRect()
for view in self.views():
QGraphicsScene.invalidate( self, rectF.intersected(view.viewportRect()) )
def __init__( self, parent=None ):
QGraphicsScene.__init__( self, parent=parent )
# tiled rendering of patches
self._tiling = None
self._brushingLayer = None
# indicates the dirtyness of each tile
self._dirtyIndicator = None
self._tileProvider = None
self._stackedImageSources = None
self._showTileOutlines = False
self.data2scene = QTransform(0,1,1,0,0,0)
self.scene2data = self.data2scene.transposed()
self._slicingPositionSettled = True
self._redrawIndicator = False
def drawLine(self, fromPoint, toPoint, pen):
tileId = self._tiling.containsF(toPoint)
if tileId is None:
return
p = self._brushingLayer[tileId]
p.lock()
#.........这里部分代码省略.........