def __init__(self, parent=None, graphicView=None, graphicScene=None): super(ClassModel, self).__init__() self.set_default_data() self.className = QGraphicsTextItem(self) self.functionsItem = FunctionsContainerModel(self) self.className.setPlainText(self.defaultClassName) self.setFlag(self.ItemIsMovable) self.setFlag(self.ItemSendsGeometryChanges) self.functionsItem.setPos(0, self.__get_title_height()) self.attributesItem = FunctionsContainerModel(self) self.attributesItem.setPos(0, self.functionsItem.get_height())
def on_actItem_Text_triggered(self): strText,OK=QInputDialog.getText(self,"输入","请输入文字") if (not OK): return item=QGraphicsTextItem(strText) font=self.font() font.setPointSize(20) font.setBold(True) item.setFont(font) #设置字体 item.setDefaultTextColor(Qt.black) #设置颜色 self.__setItemProperties(item,"文字")
def __init__(self, parent=None, textItem=None): QGraphicsLayoutItem.__init__(self, parent) if textItem is None: textItem = QGraphicsTextItem() self.__textItem = textItem self.__textItem.setParentItem(self) self.__textItem.setPos(0, 0) doc_layout = self.document().documentLayout() doc_layout.documentSizeChanged.connect(self._onDocumentSizeChanged)
def draw_rectangle(self, rect, pen=QPen(Qt.black, 8, Qt.SolidLine), brush=QBrush(QColor.fromRgb(240, 240, 255))): object_rect = self.scene.addRect(rect.x1, rect.y1, rect.x2 - rect.x1, rect.y2 - rect.y1, pen, brush) self.rectangles.append((rect, object_rect)) text_name = QGraphicsTextItem(rect.name) text_years = QGraphicsTextItem(rect.years) text_name.setPos(rect.x1 + 15, rect.y1 + 15) text_years.setPos(rect.x1 + 15, rect.y1 + 70) font = QFont() font.setBold(False) font.setPixelSize(35) text_name.setFont(font) text_years.setFont(font) self.scene.addItem(text_name) self.scene.addItem(text_years)
def __init__(self, model_item: Participant, parent=None): super().__init__(parent) self.model_item = model_item self.text = QGraphicsTextItem(self) self.line = QGraphicsLineItem(self) self.line.setPen( QPen(Qt.darkGray, 1, Qt.DashLine, Qt.RoundCap, Qt.RoundJoin)) self.refresh()
def __init__(self): super(painter, self).__init__() self.setFixedSize(self.width, self.height + self.textLineHeight) self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff) self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff) self.scene = QGraphicsScene() self.setScene(self.scene) # center het text item self.centerTextItem = QGraphicsTextItem() self.centerTextItem.setPos(self.width / 4 - self.fontSize, 0) self.centerTextItem.setZValue(self.baseZValue + 1) self.scene.addItem(self.centerTextItem) # center anchor item centerX = self.width / 2 centerY = self.height / 2 self.ellipseItem = QGraphicsEllipseItem( 0, 0, self.ellipseRadius * 2, self.ellipseRadius * 2 ) self.horLineItem = QGraphicsLineItem(0, 0, self.anchorLineSize, 0) self.verLineItem = QGraphicsLineItem(0, 0, 0, self.anchorLineSize) self.ellipseItem.setPos( centerX - self.ellipseRadius, centerY - self.ellipseRadius ) self.horLineItem.setPos(centerX - self.anchorLineSize / 2, centerY) self.verLineItem.setPos(centerX, centerY - self.anchorLineSize / 2) self.ellipseItem.setPen(QColor(Qt.white)) self.horLineItem.setPen(QColor(Qt.white)) self.verLineItem.setPen(QColor(Qt.white)) self.ellipseItem.setZValue(self.baseZValue + 1) self.horLineItem.setZValue(self.baseZValue + 1) self.verLineItem.setZValue(self.baseZValue + 1) self.scene.addItem(self.ellipseItem) self.scene.addItem(self.horLineItem) self.scene.addItem(self.verLineItem) # camera item self.cameraBuffer = QPixmap(self.width, self.height + self.textLineHeight) self.cameraItem = QGraphicsPixmapItem() if self.useBlur: self.gusBlurEffect = QGraphicsBlurEffect() self.gusBlurEffect.setBlurRadius(self.blurRaduis) self.cameraItem.setGraphicsEffect(self.gusBlurEffect) self.cameraItem.setPos(0, 0) self.cameraItem.setZValue(self.baseZValue) self.scene.addItem(self.cameraItem) # het text item self.hetTextBuffer = QPixmap(self.width, self.textLineHeight) self.hetTextItem = QGraphicsPixmapItem() self.hetTextItem.setPos(0, self.height) self.hetTextItem.setZValue(self.baseZValue) self.scene.addItem(self.hetTextItem)
def constructTree(self): root_item = BinTreeNodeGraphicsItem("S", self.tree.root.data) root_item.setBrush(Qt.white) self.addItem(root_item) x, y = self.width() / 2 - self.rad, self.rad root_item.moveBy(x, y) text_item = QGraphicsTextItem("S") text_item.moveBy(x-self.rad/2, y-self.rad/2) self.addItem(text_item) self._constructTree(self.tree.root.left, x-self.width()/4, 4*self.rad, x, y, "S<sub>1") self._constructTree(self.tree.root.right, x+self.width()/4, 4*self.rad, x, y, "S<sub>2")
def initMapErrorHandle(self): self.b_map_loaded = False self.text_warning = '<div style="font:20px;\ color:red;\ text-align:center;">\ <b>⚠ WARNING ⚠</b><br /><br />\ 地图加载出错啦<br /><br />\ ::>﹏<::\ </div>' self.gtext_warning = QGraphicsTextItem() self.gtext_warning.setHtml(self.text_warning) self.gscene_map.addItem(self.gtext_warning)
def __init__(self, path, size, parent=None): QGraphicsPixmapItem.__init__(self, parent) self._path = path self._loaded = False self._text = QGraphicsTextItem(self) self._text.setFont(QFont("Arial", 14)) self._text.setPlainText(os.path.basename(path)) self._text.setPos(0, size.height()) self.setShapeMode(QGraphicsPixmapItem.BoundingRectShape) self.setFlags(self.flags() | QGraphicsItem.ItemIsSelectable ) # | QtGui.QGraphicsItem.ItemIsMovable )
def __init__(self, view, scene, y_pos, color, name): self._view = view self._scene = scene self._y_pos = y_pos self._color = color self._name = name self._node_list = [] # create name text self._text = QGraphicsTextItem(self._name) self._text.setDefaultTextColor(color) self._text.setPos(-NODE_RADIUS, self._y_pos - NODE_RADIUS - 20) self._scene.addItem(self._text)
def __init__(self, text, x, y, size, color): self._pos = QPointF(x - 1.8, y + 1.8) super().__init__() self.text = QGraphicsTextItem(text) transform = QTransform.fromScale(0.3, -0.3) self.text.setTransformOriginPoint(self._pos) self.text.setTransform(transform) self.text.setPos(self._pos) # self.text.setRotation(-180) font = QFont("Times", 2) self.text.setFont(font) self._visible = 1
def __init__(self, x, y, number, scene): QGraphicsRectItem.__init__(self) self.setRect(x, y, 50, 50) self.setBrush(QBrush(QColor(50, 50, 50))) self.setPen(QPen(QColor("black"))) self.__x = x self.__y = y self.setZValue(3) self.number = QGraphicsTextItem(str(number)) self.number.setPos(x, y) self.number.setZValue(10) scene.addItem(self.number)
def initTitle(self): # Draw the _title self._title_color = Qt.white self._title_font = QFont('Ubuntu', 10) self._padding = 5. self.title_height = 24 self.title_item = QGraphicsTextItem(self) # self.title_item.node = self.node self.title_item.setDefaultTextColor(self._title_color) self.title_item.setFont(self._title_font) self.title_item.setPos(self._padding, 0) self.title_item.setTextWidth(self.width - 2 * self._padding) self.title_item.setPlainText('Resizeable node')
def __init__(self, rect, parent, label): QGraphicsRectItem.__init__(self, rect, parent=parent) self.setFlag(QGraphicsItem.ItemIsMovable) self.setFlag(QGraphicsItem.ItemSendsGeometryChanges) self.setPen(Qt.red) self.resizeHandleSize = 4.0 self.updateResizeHandles() self.label = label self.labelsCombo = QGraphicsTextItem(self.label, self) self.labelsCombo.setDefaultTextColor(Qt.red) self.labelsCombo.setPos(self.rect().bottomLeft() + QPointF(0, 5.0))
def __init__(self, parent=None): super().__init__(parent) self.max_val = 1 self.current_val = 1 self.WIDTH = parent.pixmap().width() if parent else 60 self.setRect(parent.pos().x(), parent.pos().y(), self.WIDTH, 8) self.setBrush(Qt.red) self.text = QGraphicsTextItem(self) self.text.setDefaultTextColor(Qt.white) font = QFont('comic sans', 7) self.text.setFont(font) self.text.setPos(self.x(), self.y() - 7)
def __init__(self, **kwargs): super().__init__() self.location = MapPoint() self.__dict__.update(kwargs) self.text = QGraphicsTextItem() self.text.setHtml( "<font color='{}' size='{}'>{}</font>".format( self.location.color.name(), 1 + self.location.size, '\u272a' + self.location.text ) ) self.text.setZValue(2) self.text.setPos(self.location.x, self.location.y)
def set_functions_list(self, functionsList, prefix="", sufix=""): self.funtionsList = functionsList self.funtionsListItems = [] self.maxHeight = 0 tempHeight = 0 for element in functionsList: tempElement = QGraphicsTextItem(self) tempElement.setPlainText(prefix + element + sufix) tempElement.setPos(0, tempHeight) tempHeight += tempElement.document().size().height() if self.maxWidth < tempElement.document().size().width(): self.maxWidth = tempElement.document().size().width() self.funtionsListItems.append(tempElement) self.maxHeight = tempHeight
def __init__(self, parent): super().__init__(parent) self.uas = None svgRenderer = QSvgRenderer('res/barometer.svg') bkgnd = QGraphicsSvgItem() bkgnd.setSharedRenderer(svgRenderer) bkgnd.setCacheMode(QGraphicsItem.NoCache) bkgnd.setElementId('background') scene = QGraphicsScene() scene.addItem(bkgnd) scene.setSceneRect(bkgnd.boundingRect()) self.needle = QGraphicsSvgItem() self.needle.setSharedRenderer(svgRenderer) self.needle.setCacheMode(QGraphicsItem.NoCache) self.needle.setElementId('needle') self.needle.setParentItem(bkgnd) self.needle.setPos( bkgnd.boundingRect().width() / 2 - self.needle.boundingRect().width() / 2, bkgnd.boundingRect().height() / 2 - self.needle.boundingRect().height() / 2) self.needle.setTransformOriginPoint( self.needle.boundingRect().width() / 2, self.needle.boundingRect().height() / 2) # textElement = svgRenderer.boundsOnElement('needle-text') self.digitalBaro = QGraphicsTextItem() self.digitalBaro.setDefaultTextColor(QColor(255, 255, 255)) self.digitalBaro.document().setDefaultTextOption( QTextOption(Qt.AlignCenter)) self.digitalBaro.setFont(QFont('monospace', 13, 60)) self.digitalBaro.setParentItem(bkgnd) txm = QTransform() txm.translate( bkgnd.boundingRect().center().x(), bkgnd.boundingRect().height() - 1.5 * self.digitalBaro.document().size().height()) self.digitalBaro.setTransform(txm, False) view = QGraphicsView(scene) view.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff) view.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff) layout = QVBoxLayout() layout.addWidget(view) self.setLayout(layout) self.setBarometer(1000)
def populate(self): self.digits = [] self.animations = [] # This is just a nice font, use any font you like, or none font = QFont('White Rabbit') font.setPointSize(120) # Create three ":" and place them in our scene self.dot1 = QGraphicsTextItem(':') # from QtGui self.dot1.setFont(font) self.dot1.setPos(140, 0) self._scene.addItem(self.dot1) self.dot2 = QGraphicsTextItem(':') self.dot2.setFont(font) self.dot2.setPos(410, 0) self._scene.addItem(self.dot2) # Create 6 sets of 0-9 digits for i in range(60): t_item = QGraphicsTextItem(str(i % 10)) t_item.setFont(font) # The zvalue is what controls what appears "on top" of what. # Send them to "the bottom" of the scene. t_item.setZValue(-100) # Place them anywhere t_item.setPos(randint(0, 500), randint(150, 300)) # Make them semi-transparent t_item.setOpacity(.3) # Put them in the scene self._scene.addItem(t_item) # Keep a reference for internal purposes self.digits.append(t_item)
def constructTree(self): root_item = BinTreeNodeGraphicsItem(str(self.tree.root.data)) root_item.setBrush(Qt.white) if self.tree.root.data in self.regionPoints: root_item.setPen(Qt.green) self.addItem(root_item) x, y = (self.width() - self.nodeWidth) / 2, self.nodeWidth / 2 root_item.moveBy(x, y) text_item = QGraphicsTextItem(root_item.text) text_item.moveBy(x-self.nodeWidth/4, y-self.nodeWidth/4) self.addItem(text_item) self._constructTree(self.tree.root.left, x-self.width()/4, 2*self.nodeWidth, x, y, str(self.tree.root.left.data)) self._constructTree(self.tree.root.right, x+self.width()/4, 2*self.nodeWidth, x, y, str(self.tree.root.right.data))
def __init__(self, trnsysType, parent, **kwargs): super(TVentil, self).__init__(trnsysType, parent, **kwargs) self.h = 40 self.w = 40 self.isTempering = False self.positionForMassFlowSolver = 1.0 self.posLabel = QGraphicsTextItem(str(self.positionForMassFlowSolver), self) self.posLabel.setVisible(False) self.inputs.append(_cspi.createSinglePipePortItem("i", 0, self)) self.inputs.append(_cspi.createSinglePipePortItem("i", 1, self)) self.outputs.append(_cspi.createSinglePipePortItem("o", 2, self)) self.changeSize()
def _initLabel(self): """Display the length of the insertion.""" self._label = label = QGraphicsTextItem("", parent=self) label.setFont(_font) label.setTextInteractionFlags(Qt.TextEditorInteraction) label.inputMethodEvent = self.inputMethodEventHandler label.keyPressEvent = self.textkeyPressEvent label.mousePressEvent = self.labelMousePressEvent label.mouseDoubleClickEvent = self.mouseDoubleClickEvent label.setTextWidth(-1) self._label = label self._seqItem = QGraphicsPathItem(parent=self) self._seqText = None self.updateItem() self.show()
def loadMap(self, mapLocation): with open(mapLocation) as file: mapObjList = json.load(file) for item in mapObjList["objects"]: if (item["type"] == "rect"): shape = QGraphicsRectItem(item["centerX"] - item["length"] / 2, -item["centerY"] - item["width"] / 2, item["length"], item["width"]) shape.setTransformOriginPoint( QPoint(item["centerX"], -item["centerY"])) shape.setPen(QPen(self.black)) shape.setBrush(QBrush(self.black, Qt.SolidPattern)) shape.setRotation(item["rotation"]) self.scene.addItem(shape) elif (item["type"] == "text"): label = QGraphicsTextItem(item["text"]) label.setX(item["centerX"] - item["length"] / 2) label.setY(-item["centerY"] - item["width"] / 2) font = QFont("Bavaria") font.setPointSize(24) font.setWeight(QFont.Bold) label.setFont(font) label.setRotation(item["rotation"]) self.RoomNameList.append(label) self.scene.addItem(label) elif (item["type"] == "obstacle"): shape = QGraphicsRectItem(item["centerX"] - item["length"] / 2, -item["centerY"] - item["width"] / 2, item["length"], item["width"]) shape.setTransformOriginPoint( QPoint(item["centerX"], -item["centerY"])) shape.setPen(QPen(self.gray)) shape.setBrush(QBrush(self.gray, Qt.SolidPattern)) shape.setRotation(item["rotation"]) self.ObstacleList.append(shape) elif (item["type"] == "plant"): shape = QGraphicsEllipseItem( item["centerX"] - item["length"] / 2, -item["centerY"] - item["width"] / 2, item["length"], item["width"]) shape.setTransformOriginPoint( QPoint(item["centerX"], -item["centerY"])) shape.setPen(QPen(self.green)) shape.setBrush(QBrush(self.green, Qt.SolidPattern)) shape.setRotation(item["rotation"]) self.ObstacleList.append(shape) self.SupervisorMap.scale(self.scaleFactor, self.scaleFactor)
def on_mouseDoubleClick(self, point): # 鼠标双击事件,调用相应的对话框,设置填充颜色、线条颜色或字体 # QMessageBox.warning(self, "debug","on_mouseDoubleClick!") pointScene = self.view.mapToScene(point) # 转换到Scene坐标 # QGraphicsItem *item=NULL item = self.scene.itemAt(pointScene, self.view.transform()) # 获取光标下的绘图项 item_type = item.type() # QMessageBox.warning(self, "debug",str(item_type)+'<==>'+str(QGraphicsLineItem.Type)) if item == None or item_type == None: # 没有绘图项 QMessageBox.warning(self, "debug", "No item found!") return # switch (item_type): #绘图项的类型 if item_type == 3: # QGraphicsRectItem.Type: #矩形框 # 强制类型转换 theItem = QGraphicsRectItem(item) self.setBrushColor(theItem) return elif item_type == 4: # QGraphicsEllipseItem.Type: #椭圆和圆都是 QGraphicsEllipseItem theItem = QGraphicsEllipseItem(item) self.setBrushColor(theItem) return elif item_type == 5: # QGraphicsPolygonItem.Type: #梯形和三角形 theItem = QGraphicsPolygonItem(item) self.setBrushColor(theItem) return elif item_type == 6: # QGraphicsLineItem.Type: #直线,设置线条颜色 theItem = QGraphicsLineItem(item) pen = theItem.pen() color = theItem.pen().color() color = QColorDialog.getColor(color, self, "选择线条颜色") if color.isValid(): pen.setColor(color) theItem.setPen(pen) return elif item_type == 8: # QGraphicsTextItem.Type: #文字,设置字体 theItem = QGraphicsTextItem(item) font = theItem.font() ok = False font, ok = QFontDialog.getFont(self) if ok: theItem.setFont(font) return
def paint_circle(self, x, y, r, name): # добавляет круг на сцену ell = QGraphicsEllipseItem( x - r // 2, y - r // 2, r, r) # поправка смещения(в qt x,y - правый левый угол) ell.setBrush(QColor(192, 192, 192)) self.scene.addItem(ell) self.conditions[name]["scene_items"].append(ell) if self.conditions[name]["is_final"] == 'yes': ell = QGraphicsEllipseItem(x - r // 2 + r // 10, y - r // 2 + r // 10, r - r // 5, r - r // 5) ell.setBrush(QColor(192, 192, 192)) self.scene.addItem(ell) self.conditions[name]["scene_items"].append(ell) text_item = QGraphicsTextItem(name) text_item.moveBy(x - 11, y - 12) self.scene.addItem(text_item)
def __init__(self, parent): super(QNEPort, self).__init__(parent) self.textColor = Qt.black self.label = QGraphicsTextItem(self) self.radius_ = 4 self.margin = 3 self.setPen(QPen(Qt.darkRed)) self.setBrush(Qt.red) self.setFlag(QGraphicsItem.ItemSendsScenePositionChanges) self.m_portFlags = 0 self.isOutput_ = False self.m_block = None self.m_connections = []
def __init__(self, name, rect=QRectF(0, 0, 20, 20), parent=None): QGraphicsEllipseItem.__init__(self, rect, parent) self.setX(random.randrange(0, 1000, 1)) self.setY(random.randrange(0, 300, 1)) self.edges = [] self.setZValue(2) self.brush_color = QColor(153, 153, 153) self.setBrush(self.brush_color) self.setPen(QPen(Qt.NoPen)) self.setFlags(QGraphicsItem.ItemIsMovable | QGraphicsItem.ItemIsSelectable | QGraphicsItem.ItemSendsGeometryChanges) self.text = QGraphicsTextItem(name) self.text.setDefaultTextColor(self.brush_color) self.text.setPos(-float(len(self.text.toPlainText())), -20.0) self.text.setParentItem(self) self.screen = ''
def __init__(self, model, color=DEFAULT_COLOR, parent=None, label="item", handle_size=DEFAULT_HANDLE_SIZE, handle_color=DEFAULT_HANDLE_COLOR, edge_color=DEFAULT_EDGE_COLOR, edge_width=DEFAULT_EDGE_WIDTH): """ :param model: must be a subclass of DataModels.Geometry :param color: fill color :param parent: parent object :param label: a label for this item :param handle_size: size of the handls :param handle_color: color of the handles :param edge_color: :param edge_width: """ super(ControllableItem, self).__init__(parent) # if not issubclass(model.__class__, Geometry): # raise ValueError('Invalid model, need to be a subclass of Geometry') self._model = model self._model.changed.connect(self.modelChanged) self._controls = [] self._handle_size = handle_size self._handle_color = handle_color self._color = color self._edge_color = edge_color # the bounding rectangle self._rect = QRectF(0, 0, 100, 100) self._idd = DEFAULT_IDMAN.next() self._edge_width = edge_width # self.setFlags(self.flags() | # QGraphicsItem.ItemIsSelectable | # QGraphicsItem.ItemSendsGeometryChanges | # QGraphicsItem.ItemIsFocusable) # create handles from control points self.control_points = self.model.control_points self._label = QGraphicsTextItem(label, self) self._label.setPos(QPointF(self.rect.x(), self.rect.y())) self._label.setFont(QFont('', 40)) self._updateRect()
def __init__(self): super().__init__() self.scene = QGraphicsScene() self.scene.addItem(QGraphicsTextItem('loading...')) self.view = QGraphicsView() self.view.setScene(self.scene) self.nam = QNetworkAccessManager() self.nam.finished.connect(self.finish_request) url = "http://pp.vk.me/c627626/v627626428/be07/wbpWha0RqZ4.jpg" self.nam.get(QNetworkRequest(QUrl(url))) layout = QVBoxLayout() layout.addWidget(self.view) self.setLayout(layout)
def actually_show_dialog(self, data): if self.dialog_box is None: self.create_dialog_box() else: self.current_dialog_text = QGraphicsTextItem() self.current_dialog_text.setZValue(20) self.current_dialog_text.setDefaultTextColor(QColor(255, 255, 255)) temp_font = self.current_dialog_text.font() temp_font.setPointSize(data[2]) self.current_dialog_text.setFont(temp_font) self.addItem(self.current_dialog_text) self.current_dialog_text.setX(self.dialog_box.x() + 10) self.current_dialog_text.setY(self.dialog_box.y() + 10) self.current_dialog_text.setTextWidth(self.dialog_box.boundingRect().width() - 20) self.target_text = data[1] self.current_dialog_text_offset = 0