def paintEvent(self, qpaintevent): painter = QtGui.QPainter(self) font = painter.font() fm = QtGui.QFontMetrics(font) w = fm.boundingRect(self.text()).width() + 10 h = fm.boundingRect(self.text()).height() painter.setFont(font) # painter.setPen(QtGui.QPen(QtGui.QColor(10, 10, 10))) painter.drawText(0, 0, w, h, 0, self.text()) super(Label, self).paintEvent(qpaintevent)
def paint(self, painter, option, widget): """Draw the Tag's shape and label.""" bbox = self.boundingRect() if self.shape is not None: painter.setPen(QtGui.QPen(QtCore.Qt.NoPen)) painter.setBrush(QtGui.QBrush(self.fillColor)) # Draw a filled rectangle. if self.shape == 1: roundness = 3 painter.drawRoundedRect(bbox, roundness, roundness) # Ellipse if self.shape == 2: painter.drawEllipse(bbox) # Triangle0 if self.shape == 3: points, rects = get_shapes_of_triangle(self.w, roundness=2, direction=0) painter.drawPolygon(QtGui.QPolygonF(points)) for rect in rects: painter.drawEllipse(rect) # Triangle2 if self.shape == 4: points, rects = get_shapes_of_triangle(self.w, roundness=2, direction=2) painter.drawPolygon(QtGui.QPolygonF(points)) for rect in rects: painter.drawEllipse(rect) if self.text is not None: painter.setPen(QtGui.QPen(self.textColor)) font = painter.font() fm = QtGui.QFontMetrics(font) w = fm.boundingRect(self.text).width() + 10 h = fm.boundingRect(self.text).height() rect = QtCore.QRectF(0 - (w - bbox.width()) / 2.0, 0 - (h - bbox.height()) / 2.0, w, h) painter.drawText(rect, QtCore.Qt.AlignCenter, self.text)