Python PyQt5.QtWidgets.QGraphicsItem() Examples
The following are 23 code examples for showing how to use PyQt5.QtWidgets.QGraphicsItem(). These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example.
You may check out the related API usage on the sidebar.
You may also want to check out all available functions/classes of the module
PyQt5.QtWidgets
, or try the search function
.
Example 1
Project: imperialism-remake Author: Trilarion File: qt.py License: GNU General Public License v3.0 | 6 votes |
def __init__(self, parent): """ Create property animations, sets the opacity to zero initially. :param parent: """ super().__init__() if isinstance(parent, QtWidgets.QGraphicsItem): # create opacity effect self.effect = QtWidgets.QGraphicsOpacityEffect() self.effect.setOpacity(0) parent.setGraphicsEffect(self.effect) self.fade = QtCore.QPropertyAnimation(self.effect, 'opacity'.encode()) # encode is utf-8 by default elif isinstance(parent, QtWidgets.QWidget): parent.setWindowOpacity(0) self.fade = QtCore.QPropertyAnimation(parent, 'windowOpacity'.encode()) # encode is utf-8 by default else: raise RuntimeError('Type of parameter must be QtWidgets.QGraphicsItem or QtWidgets.QWidget.') # set start and stop value self.fade.setStartValue(0) self.fade.setEndValue(1) self.fade.finished.connect(self.finished) self.forward = True
Example 2
Project: Miyamoto Author: aboood40091 File: items.py License: GNU General Public License v3.0 | 6 votes |
def itemChange(self, change, value): """ Handle movement """ if change == QtWidgets.QGraphicsItem.ItemPositionChange: if self.scene() is None: return value updRect = QtCore.QRectF( self.x() + self.aux.x(), self.y() + self.aux.y(), self.aux.BoundingRect.width(), self.aux.BoundingRect.height(), ) self.scene().update(updRect) return super().itemChange(change, value)
Example 3
Project: Miyamoto Author: aboood40091 File: spritelib.py License: GNU General Public License v3.0 | 6 votes |
def __init__(self, parent, imageObj): """ Generic constructor for auxiliary zone items """ super().__init__(parent) self.parent = parent self.imageObj = imageObj self.setFlag(QtWidgets.QGraphicsItem.ItemIsMovable, False) self.setFlag(QtWidgets.QGraphicsItem.ItemIsSelectable, False) self.setFlag(QtWidgets.QGraphicsItem.ItemStacksBehindParent, False) self.setParentItem(parent) self.hover = False if parent is not None: parent.aux.add(self) self.BoundingRect = QtCore.QRectF(0, 0, TileWidth, TileWidth)
Example 4
Project: ezdxf Author: mozman File: cad_viewer.py License: MIT License | 6 votes |
def _on_element_selected(self, element: Optional[qw.QGraphicsItem], mouse_pos: qc.QPointF): text = f'mouse position: {mouse_pos.x():.4f}, {mouse_pos.y():.4f}\n' if element is None: text += 'No element selected' else: dxf_entity = element.data(CorrespondingDXFEntity) if dxf_entity is None: text += 'No data' else: text += f'Current Entity: {dxf_entity}\nLayer: {dxf_entity.dxf.layer}\n\nDXF Attributes:\n' for key, value in dxf_entity.dxf.all_existing_dxf_attribs().items(): text += f'- {key}: {value}\n' dxf_entity_stack = element.data(CorrespondingDXFEntityStack) if dxf_entity_stack: text += '\nParents:\n' for entity in reversed(dxf_entity_stack): text += f'- {entity}\n' self.info.setPlainText(text)
Example 5
Project: kite Author: pyrocko File: multiplot.py License: GNU General Public License v3.0 | 5 votes |
def __init__(self): QtWidgets.QGraphicsRectItem.__init__(self, self.cursor) self.setPen(self.pen) self.setZValue(1e9) self.setFlag(QtWidgets.QGraphicsItem.ItemIgnoresTransformations)
Example 6
Project: kite Author: pyrocko File: multiplot.py License: GNU General Public License v3.0 | 5 votes |
def __init__(self, parent): QtWidgets.QGraphicsItem.__init__(self, parent=parent) self.p1 = QtCore.QPointF() self.p2 = QtCore.QPointF() self.line = QtCore.QLineF(self.p1, self.p2) self.setOrientation(0., 0.) self.setZValue(10000)
Example 7
Project: imperialism-remake Author: Trilarion File: qt.py License: GNU General Public License v3.0 | 5 votes |
def add_item(self, item: QtWidgets.QGraphicsItem): """ Adds an item to the content list. Should be :param item: """ if not isinstance(item, QtWidgets.QGraphicsItem): raise RuntimeError('Expected instance of QGraphicsItem!') self._content.add(item)
Example 8
Project: Miyamoto Author: aboood40091 File: items.py License: GNU General Public License v3.0 | 5 votes |
def itemChange(self, change, value): """ Avoids snapping for zones """ return QtWidgets.QGraphicsItem.itemChange(self, change, value)
Example 9
Project: Miyamoto Author: aboood40091 File: items.py License: GNU General Public License v3.0 | 5 votes |
def __init__(self, parent): """ Initializes the auxiliary entrance thing """ super().__init__(parent) self.parent = parent self.setFlag(QtWidgets.QGraphicsItem.ItemIsMovable, False) self.setFlag(QtWidgets.QGraphicsItem.ItemIsSelectable, False) self.setFlag(QtWidgets.QGraphicsItem.ItemStacksBehindParent, True) self.setParentItem(parent) self.hover = False
Example 10
Project: Miyamoto Author: aboood40091 File: spritelib.py License: GNU General Public License v3.0 | 5 votes |
def __init__(self, parent): """ Generic constructor for auxiliary items """ super().__init__(parent) self.parent = parent self.setFlag(QtWidgets.QGraphicsItem.ItemIsMovable, False) self.setFlag(QtWidgets.QGraphicsItem.ItemIsSelectable, False) self.setFlag(QtWidgets.QGraphicsItem.ItemStacksBehindParent, True) self.setParentItem(parent) self.hover = False self.BoundingRect = QtCore.QRectF(0, 0, TileWidth, TileWidth)
Example 11
Project: Miyamoto Author: aboood40091 File: spritelib.py License: GNU General Public License v3.0 | 5 votes |
def setIsBehindZone(self, behind): """ This allows you to choose whether the auiliary item will display behind the zone or in front of it. Default is for the item to be in front of the zone. """ self.setFlag(QtWidgets.QGraphicsItem.ItemStacksBehindParent, behind)
Example 12
Project: Miyamoto Author: aboood40091 File: spritelib.py License: GNU General Public License v3.0 | 5 votes |
def __init__(self, parent, imageObj): """ Generic constructor for auxiliary items """ super().__init__(parent) self.parent = parent self.imageObj = imageObj self.setFlag(QtWidgets.QGraphicsItem.ItemIsMovable, False) self.setFlag(QtWidgets.QGraphicsItem.ItemIsSelectable, False) self.setFlag(QtWidgets.QGraphicsItem.ItemStacksBehindParent, False) self.setParentItem(parent) self.hover = False self.BoundingRect = QtCore.QRectF(0, 0, TileWidth, TileWidth)
Example 13
Project: Miyamoto Author: aboood40091 File: spritelib.py License: GNU General Public License v3.0 | 5 votes |
def setIsBehindLocation(self, behind): """ This allows you to choose whether the auiliary item will display behind the zone or in front of it. Default is for the item to be in front of the location. """ self.setFlag(QtWidgets.QGraphicsItem.ItemStacksBehindParent, behind)
Example 14
Project: eddy Author: danielepantaleone File: common.py License: GNU General Public License v3.0 | 5 votes |
def setPos(self, *__args): """ Set the item position. QtWidgets.QGraphicsItem.setPos(QtCore.QPointF) QtWidgets.QGraphicsItem.setPos(float, float) """ if len(__args) == 1: pos = __args[0] elif len(__args) == 2: pos = QtCore.QPointF(__args[0], __args[1]) else: raise TypeError('too many arguments; expected {0}, got {1}'.format(2, len(__args))) super().setPos(pos - QtCore.QPointF(self.width() / 2, self.height() / 2))
Example 15
Project: CvStudio Author: haruiz File: image_viewer_scene.py License: MIT License | 5 votes |
def addItem(self, item: QGraphicsItem) -> None: super(ImageViewerScene, self).addItem(item) if isinstance(item, EditableItem): self.itemAdded.emit(item)
Example 16
Project: CvStudio Author: haruiz File: image_viewer_scene.py License: MIT License | 5 votes |
def removeItem(self, item: QGraphicsItem) -> None: super(ImageViewerScene, self).removeItem(item) if isinstance(item, EditableItem): self.itemDeleted.emit(item)
Example 17
Project: ezdxf Author: mozman File: cad_viewer.py License: MIT License | 5 votes |
def __init__(self): super().__init__() self._current_item: Optional[qw.QGraphicsItem] = None
Example 18
Project: ezdxf Author: mozman File: pyqt_backend.py License: MIT License | 5 votes |
def _set_item_data(self, item: qw.QGraphicsItem) -> None: item.setData(CorrespondingDXFEntity, self.current_entity) item.setData(CorrespondingDXFEntityStack, self.current_entity_stack)
Example 19
Project: CodeAtlasSublime Author: league1991 File: SymbolUIItem.py License: Eclipse Public License 1.0 | 5 votes |
def __init__(self, node, parent = None, scene = None): super(SymbolUIItem, self).__init__(parent, scene) isIgnore = node and node.getKind() == node.KIND_UNKNOWN self.setFlag(QtWidgets.QGraphicsItem.ItemIsSelectable, not isIgnore) self.setFlag(QtWidgets.QGraphicsItem.ItemIsFocusable, not isIgnore) self.setAcceptDrops(True); self.setAcceptHoverEvents(True) self.node = node self.path = None self.rect = None self.isHover = False self.theta = (0,0) self.radius= (0,0) self.txtRadius = 0 self.setToolTip("%s:%s" % (node.name, node.getKindName())) self.txtPos = None if not SymbolUIItem.COLOR_DICT: SymbolUIItem.COLOR_DICT = \ {self.node.KIND_FUNCTION: QtGui.QColor(190,228,73), self.node.KIND_VARIABLE: QtGui.QColor(255,198,217), self.node.KIND_CLASS: QtGui.QColor(154,177,209), self.node.KIND_NAMESPACE: QtGui.QColor(154,225,209), self.node.KIND_UNKNOWN: QtGui.QColor(195,195,195), } self.setFlag(QtWidgets.QGraphicsItem.ItemIsSelectable) self.setFlag(QtWidgets.QGraphicsItem.ItemIsFocusable)
Example 20
Project: CodeAtlasSublime Author: league1991 File: CodeUIEdgeItem.py License: Eclipse Public License 1.0 | 5 votes |
def __init__(self, srcUniqueName, tarUniqueName, edgeData = {}, parent = None, scene = None): super(CodeUIEdgeItem, self).__init__(parent) self.setFlag(QtWidgets.QGraphicsItem.ItemIsSelectable) self.setAcceptHoverEvents(True) self.srcUniqueName = srcUniqueName self.tarUniqueName = tarUniqueName self.setZValue(-1) self.path = None self.pathShape = None self.curve = None self.pathPnt = None self.file = '' self.line = -1 self.column = -1 dbRef = edgeData.get('dbRef', None) if dbRef: self.file = dbRef.file().longname() self.line = dbRef.line() self.column = dbRef.column() self.isHover = False # (number, point) self.orderData = None self.buildPath() self.isConnectedToFocusNode = False self.schemeColorList = [] self.customEdge = edgeData.get('customEdge', False) self.isCandidate = False
Example 21
Project: imperialism-remake Author: Trilarion File: qt.py License: GNU General Public License v3.0 | 4 votes |
def make_GraphicsItem_clickable(parent): """ Takes a QtWidgets.QGraphicsItem and adds signals for entering, leaving and clicking on the item. For this the item must have setAcceptHoverEvents and it must also inherit from QObject to have signals. Only use it when really needed because there is some performance hit attached. """ # class ClickableGraphicsItem(parent, QtCore.QObject): # noinspection PyPep8Naming class ClickableGraphicsItem(parent): """ Clickable GraphicsItem """ def __init__(self, *args, **kwargs): """ QGraphicsItems by default do not accept hover events or accept mouse buttons (for performance reasons). So we need to turn both on. """ parent.__init__(self, *args, **kwargs) # QtCore.QObject.__init__(self) self.parent = parent self.setAcceptHoverEvents(True) self.setAcceptedMouseButtons(QtCore.Qt.LeftButton) self.signaller = ClickableGraphicsItemSignaller() def hoverEnterEvent(self, event): # noqa: N802 """ Emit the entered signal after default handling. :param event: """ self.parent.hoverEnterEvent(self, event) self.signaller.entered.emit(event) def hoverLeaveEvent(self, event): # noqa: N802 """ Emit the left signal after default handling. :param event: """ self.parent.hoverLeaveEvent(self, event) self.signaller.left.emit(event) def mousePressEvent(self, event): # noqa: N802 """ Emit the clicked signal after default handling. :param event: """ self.parent.mousePressEvent(self, event) self.signaller.clicked.emit(event) return ClickableGraphicsItem # noinspection PyPep8Naming
Example 22
Project: imperialism-remake Author: Trilarion File: qt.py License: GNU General Public License v3.0 | 4 votes |
def make_GraphicsItem_draggable(parent): """ Takes a QtWidgets.QGraphicsItem and adds signals for dragging the object around. For this the item must have the ItemIsMovable and ItemSendsScenePositionChanges flags set. Only use it when really needed because there is some performance hit attached. """ # noinspection PyPep8Naming class DraggableGraphicsItem(parent, QtCore.QObject): """ Draggable GraphicsItem. """ changed = QtCore.pyqtSignal(object) def __init__(self, *args, **kwargs): """ By default QGraphicsItems are not movable and also do not emit signals when the position is changed for performance reasons. We need to turn this on. """ parent.__init__(self, *args, **kwargs) self.parent = parent QtCore.QObject.__init__(self) self.setFlags(QtWidgets.QGraphicsItem.ItemIsMovable | QtWidgets.QGraphicsItem.ItemSendsScenePositionChanges) def itemChange(self, change, value): # noqa: N802 """ Catch all item position changes and emit the changed signal with the value (which will be the position). :param change: :param value: """ if change == QtWidgets.QGraphicsItem.ItemPositionChange: self.changed.emit(value) return parent.itemChange(self, change, value) return DraggableGraphicsItem # Some classes we need (just to make the naming clear), Name will be used in Stylesheet selectors #: QToolBar made draggable
Example 23
Project: Miyamoto Author: aboood40091 File: items.py License: GNU General Public License v3.0 | 4 votes |
def itemChange(self, change, value): """ Makes sure positions don't go out of bounds and updates them as necessary """ if change == QtWidgets.QGraphicsItem.ItemPositionChange: scene = self.scene() if scene is None: return value # snap to 24x24 newpos = value newpos.setX(int((newpos.x() + globals.TileWidth / 2) / globals.TileWidth) * globals.TileWidth) newpos.setY(int((newpos.y() + globals.TileWidth / 2) / globals.TileWidth) * globals.TileWidth) x = newpos.x() y = newpos.y() # don't let it get out of the boundaries if x < 0: newpos.setX(0) if x > globals.TileWidth * 1023: newpos.setX(globals.TileWidth * 1023) if y < 0: newpos.setY(0) if y > globals.TileWidth * 511: newpos.setY(globals.TileWidth * 511) # update the data x = int(newpos.x() / globals.TileWidth) y = int(newpos.y() / globals.TileWidth) if x != self.objx or y != self.objy: self.LevelRect.moveTo(x, y) oldx = self.objx oldy = self.objy self.objx = x self.objy = y self.UpdateSearchDatabase() if self.positionChanged is not None: self.positionChanged(self, oldx, oldy, x, y) SetDirty() # updRect = QtCore.QRectF(self.x(), self.y(), self.BoundingRect.width(), self.BoundingRect.height()) # scene.invalidate(updRect) scene.invalidate(self.x(), self.y(), self.width * globals.TileWidth, self.height * globals.TileWidth, QtWidgets.QGraphicsScene.BackgroundLayer) # scene.invalidate(newpos.x(), newpos.y(), self.width * globals.TileWidth, self.height * globals.TileWidth, QtWidgets.QGraphicsScene.BackgroundLayer) return newpos return QtWidgets.QGraphicsItem.itemChange(self, change, value)