我们从Python开源项目中,提取了以下11个代码示例,用于说明如何使用PyQt4.QtGui.QGraphicsTextItem()。
def __init__(self, editor, token, count, qpos, parent=None): '''Create a token. :param editor: DiagramEditor. Editor to show in. :param token: Token value. :param count: Number of Tokens to create. :param qpos: Parent top right position. :param parent=None: Parent Place Element ''' QtGui.QGraphicsEllipseItem.__init__(self, qpos, parent) self.editor = editor self.setZValue(19) self.countToken = count self.countTokenLabel = QtGui.QGraphicsTextItem("%d"%self.countToken, self) self.countTokenLabel.setPos(QtCore.QPointF( qpos.x()-1, qpos.y()-4 )) self.setBrush(QtGui.QBrush(QtCore.Qt.green)) self.token = token self.setToolTip( str(self.token) ) self.setFlags(self.ItemIsSelectable | self.ItemIsMovable ) #------------------------------------------------------------------------------------------------
def __init__(self, parent=None): '''Create description canvas. :param parent: Abstract CPN element. ''' super(DescriptionCanvas, self).__init__(parent) self.parent = parent self.text = self.parent.uniqueName self.setPen(QtGui.QPen(QtCore.Qt.darkYellow, 1)) self.setBrush(QtGui.QBrush(QtCore.Qt.darkYellow)) self.setFlags(self.ItemIsSelectable | self.ItemIsMovable | self.ItemSendsScenePositionChanges ) self.label = QtGui.QGraphicsTextItem( "%s: %s"%(self.parent.uniqueName, self.parent.name), parent=self ) # self.label.setFlag(self.ItemIsMovable, True) rect = self.label.boundingRect() self.setRect(rect.x() + 30, rect.y() + 20, rect.width(), rect.height()) self.label.setPos(rect.x() + 30, rect.y() + 20) self.label.setZValue(21) self.setZValue(20) self.visibility = False self.setVisibility( self.visibility ) #------------------------------------------------------------------------------------------------
def __init__(self, main, index, rect, *args, **kwargs): QtGui.QGraphicsWidget.__init__(self, *args, **kwargs) self.main = main self.index = index rect.setTop(-100) rect.setBottom(rect.bottom()+100) self.setGeometry(rect) self.setAcceptHoverEvents(True) self.pen = QtGui.QPen(QtGui.QColor(QtCore.Qt.lightGray)) self.brush = self.bgd_brushes[0] self.index_item = QtGui.QGraphicsTextItem(str(index+1), self) self.index_item.setFlags(self.index_item.ItemIgnoresTransformations) font = self.index_item.font() font.setPointSize(7) self.index_item.setFont(font) self.index_item.setY(90) self.index_item.setTextWidth(20) if (self.index+1) % 8: self.index_item.setVisible(False) else: self.index_item.setX(-16) self.selected = False self.highlight = False
def __init__(self, direction, parent=None): '''Create a port :param direction: Port direction: (i)nput, (o)utput, (io) bidirectional. :param parent: Parent port place. ''' super(PortItem, self).__init__(QtCore.QRectF(-4.0,-4.0,17.0,17.0), parent) self.posChangeCallbacks = [] self.setBrush(QtGui.QBrush(QtCore.Qt.white)) self.setFlags(self.ItemIsSelectable | self.ItemIsMovable | self.ItemSendsScenePositionChanges) self.label = QtGui.QGraphicsTextItem("", self) self.label.setPos(QtCore.QPointF( -4, -7)) self.direction = direction self.setZValue(9) #------------------------------------------------------------------------------------------------
def addText(self): font = QtGui.QFont("SansSerif", 14) font.setStyleHint(QtGui.QFont.Helvetica) font.setStretch(100) self.displayText = QtGui.QGraphicsTextItem(self.displayText, self) self.displayText.setFlag(QtGui.QGraphicsItem.ItemIsSelectable,False) self.displayText.setFont(font) self.displayText.setDefaultTextColor(QtGui.QColor(QtCore.Qt.white)) self.displayText.setPos(self.boundingRect().center().x() - (self.displayText.boundingRect().width()/2) + 5, self.sceneBoundingRect().center().y()/2 + 5)
def addText(self): font = QtGui.QFont("SansSerif", 14) font.setStyleHint(QtGui.QFont.Helvetica) font.setStretch(100) self.displayText = QtGui.QGraphicsTextItem(self.displayText, self) self.displayText.setFont(font) self.displayText.setDefaultTextColor(QtGui.QColor(QtCore.Qt.white)) self.displayText.setPos(self.boundingRect().center().x() - (self.displayText.boundingRect().width()/2) + 5, self.sceneBoundingRect().center().y()/2 + 5)
def redraw(self, *args): self.compute(self.col_spin.value(), self.vertical_chk.isChecked()) if self.mode == TEXT: self.printview.resetTransform() self.page.hide() self.printview.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded) self.printview.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded) self.printscene.removeItem(self.monotext) self.monotext = QtGui.QGraphicsTextItem() self.monotext.setPlainText(self.text.replace('\t\t', ' ').replace('\t', ' ')) self.monotext.setFont(self.monofont) self.printscene.addItem(self.monotext) self.printview.setAlignment(QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) #for some reason, very long plain text contents always set QGraphicsTextItem's height to 2012, then we use metrics self.printview.setSceneRect(0, 0, self.monotext.boundingRect().width(), QtGui.QFontMetrics(self.monofont).lineSpacing()*len(self.text.split('\n'))) self.printview.verticalScrollBar().setValue(0) self.printview.horizontalScrollBar().setValue(0) return self.monotext.hide() self.printview.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) self.printview.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) self.printview.setAlignment(QtCore.Qt.AlignCenter) self.page.setText(self.text) self.page.show() self.printview.setSceneRect(self.page.boundingRect()) self.printview.fitInView(self.page.boundingRect(), QtCore.Qt.KeepAspectRatio) self.pagebank_chk.toggled.connect(self.page.setPageBank)
def createItem(self, editor, name='Untitled', nodeType="undefined" ): '''Create the typed item. :param editor: `gui.DiagramEditor`. Editor to show in. :param name: Name of the CPN element. :param nodeType: Determining the type of the item at creation time. :return w, h: Width and height of CPN element, depending on the label length. ''' self.parent = editor self.name = name self.nodeType = nodeType self.superNet = self.parent.subnet self.label = QtGui.QGraphicsTextItem( name, self ) self.descCanvas = DescriptionCanvas(self) rect = self.label.boundingRect() w = rect.width() + 20.0 h = rect.height() + 20.0 if h < 20: h = 20 if w < 40: w = 40 self.setRect(0.0, 0.0, w, h) rect = self.label.boundingRect() lw, lh = rect.width(), rect.height() lx = (w - lw) / 2 ly = (h - lh) / 2 self.label.setPos(lx, ly) rect = self.boundingRect() pos = self.scenePos() for idx in range(0,20): connector = Connector(self, idx) self.connectorList.append( connector ) for orientation in connector.orientation: self.connectorMap[orientation].append(connector) if self.tokens is not None: for token in self.tokens: token.setRect( pos.x() + rect.width(), pos.y(), 10.0, 10.0) break return w, h #------------------------------------------------------------------------------------------------
def __init__(self, editor, srcConnector, dstConnector, name="undefined", isPortConnection=False): ''' :param editor: `gui.DiagramEditor`. Editor to show in. :param srcConnector: Source `model.AbstractItem.Connector`. :param dstConnector: Destination `model.AbstractItem.Connector`. :param name: Expression of the CPN arc assigned by the user. :param isPortConnection: Flag that determines, whether the arc represents the connection between a substitution transition and a port place.. ''' QtGui.QGraphicsItem.__init__(self, None) self.editor = editor self.srcConnector = srcConnector self.dstConnector = dstConnector self.isPortConnection = isPortConnection self.name = "" self.arcDefined = False self.variable = None self.expression = None self.diag = None self.pos1 = None self.pos2 = None self.arrowPolygon = None self.replaceExpression = None # self.subnet = subnet self.setZValue(12) if self.srcConnector: rect = self.srcConnector.rect() pos = self.mapFromItem( self.srcConnector, self.srcConnector.position ) self.pos1 = QtCore.QPointF(pos.x() + rect.width()/2, pos.y() + rect.height()/2 ) self.srcConnector.posCallbacks.append(self.setBeginPos) self.srcConnector.connectionArc = self self.arcLine = LineItem(self) self.editor.diagramScene.addItem(self.arcLine) self.arrowPolygon = QtGui.QPolygonF( [ QtCore.QPointF( 0.0, 0.0), QtCore.QPointF( 0.0, 10.0), QtCore.QPointF( 10.0, 5.0) ] ) self.arrowPolygonObject = self.editor.diagramScene.addPolygon( self.arrowPolygon ) self.label = QtGui.QGraphicsTextItem(name, self) self.label.setFlags(self.ItemIsSelectable | self.ItemIsMovable) self.editor.diagramScene.addItem(self.label) #------------------------------------------------------------------------------------------------