def __init__(self, parent, delegate): QWidget.__init__(self, parent) self.delegate = delegate self.emitted = False self.ui = Ui_AskVerdict() self.ui.setupUi(self) # build verdict icons if not AskVerdict.icons_cache: for text in VERDICTS: color = VERDICT_TO_ROW_COLORS.get(text[0]) pixmap = QPixmap(16, 16) pixmap.fill(Qt.transparent) if color: painter = QPainter(pixmap) painter.setPen(Qt.black) painter.setBrush(color) painter.drawEllipse(0, 0, 15, 15) painter.end() AskVerdict.icons_cache[text] = QIcon(pixmap) # set combo verdict for text in ('other...', 'skip', 'retry'): self.ui.comboVerdict.addItem(AskVerdict.icons_cache[text], text) model = self.ui.comboVerdict.model() model.itemFromIndex(model.index(0, 0)).setSelectable(False) self.ui.comboVerdict.activated.connect(self.on_dropdown_item_activated) self.ui.goodVerdict.clicked.connect(self.on_good_bad_button_clicked) self.ui.goodVerdict.setIcon(AskVerdict.icons_cache["good"]) self.ui.badVerdict.clicked.connect(self.on_good_bad_button_clicked) self.ui.badVerdict.setIcon(AskVerdict.icons_cache["bad"])
def setNameAndBrush(self, sigma, color=Qt.black): self.sigma = sigma self.setText( decode_to_qstring("σ=%.1fpx" % self.sigma, "utf-8") ) # This file is encoded as utf-8, so this string should be decoded as such. total_window = 1 + 2 * int(self.sigma * self.window_size + 0.5) self.setToolTip("sigma = {:.1f} pixels, window diameter = {:.1f}".format(self.sigma, total_window)) font = QFont() font.setPointSize(10) font.setBold(True) self.setFont(font) self.setForeground(color) pixmap = QPixmap(self.pixmapSize) pixmap.fill(Qt.transparent) painter = QPainter() painter.begin(pixmap) painter.setRenderHint(QPainter.Antialiasing, True) painter.setPen(color) brush = QBrush(color) painter.setBrush(brush) painter.drawEllipse( QRect( self.pixmapSize.width() / 2 - self.brushSize / 2, self.pixmapSize.height() / 2 - self.brushSize / 2, self.brushSize, self.brushSize, ) ) painter.end() self.setIcon(QIcon(pixmap)) self.setTextAlignment(Qt.AlignVCenter)
def decorate_welcome_icon(icon, background_color): """Return a `QIcon` with a circle shaped background. """ welcome_icon = QIcon() sizes = [32, 48, 64, 80] background_color = NAMED_COLORS.get(background_color, background_color) background_color = QColor(background_color) grad = radial_gradient(background_color) for size in sizes: icon_pixmap = icon.pixmap(5 * size / 8, 5 * size / 8) icon_size = icon_pixmap.size() icon_rect = QRect(QPoint(0, 0), icon_size) pixmap = QPixmap(size, size) pixmap.fill(QColor(0, 0, 0, 0)) p = QPainter(pixmap) p.setRenderHint(QPainter.Antialiasing, True) p.setBrush(QBrush(grad)) p.setPen(Qt.NoPen) ellipse_rect = QRect(0, 0, size, size) p.drawEllipse(ellipse_rect) icon_rect.moveCenter(ellipse_rect.center()) p.drawPixmap(icon_rect.topLeft(), icon_pixmap) p.end() welcome_icon.addPixmap(pixmap) return welcome_icon
def paintEvent(self, event): painter = QPainter() painter.begin(self) painter.setRenderHint(QPainter.Antialiasing) painter.fillRect(event.rect(), QBrush(QColor(255, 255, 255, 127))) painter.setPen(QPen(Qt.NoPen)) for i in range(6): x_pos = self.width() / 2 + 30 * \ math.cos(2 * math.pi * i / 6.0) - 10 y_pos = self.height() / 2 + 30 * \ math.sin(2 * math.pi * i / 6.0) - 10 if (self.counter / 5) % 6 == i: linear_gradient = QLinearGradient(x_pos + 10, x_pos, y_pos + 10, y_pos) linear_gradient.setColorAt(0, QColor(135, 206, 250)) linear_gradient.setColorAt(1, QColor(0, 0, 128)) painter.setBrush(QBrush(linear_gradient)) else: linear_gradient = QLinearGradient(x_pos - 10, x_pos, y_pos + 10, y_pos) linear_gradient.setColorAt(0, QColor(105, 105, 105)) linear_gradient.setColorAt(1, QColor(0, 0, 0)) painter.setBrush(QBrush(linear_gradient)) painter.drawEllipse(x_pos, y_pos, 20, 20) painter.end()
def updateFilledCircle(self, s): size = s * self.zoom pixmap = QPixmap(self.width(), self.height()) pixmap.fill(Qt.transparent) #painter filled ellipse p = QPalette() painter = QPainter() painter.begin(pixmap) painter.setRenderHint(QPainter.Antialiasing) brush = QBrush(p.link().color()) painter.setBrush(brush) painter.setOpacity(0.4) painter.drawEllipse(QRect(self.width()/2 - size/2, self.height()/2 - size/2, size, size)) painter.end() #painter ellipse 2 painter2 = QPainter() painter2.begin(pixmap) painter2.setRenderHint(QPainter.Antialiasing) pen2 = QPen(Qt.green) pen2.setWidth(1) painter2.setPen(pen2) painter2.drawEllipse(QRect(self.width()/2 - size/2, self.height()/2 - size/2, size, size)) painter2.end() self.ellipseLabel.setPixmap(QPixmap(pixmap)) self.lastSize = s
def __init__(self, parent, delegate): QWidget.__init__(self, parent) self.delegate = delegate self.emitted = False self.ui = Ui_AskVerdict() self.ui.setupUi(self) # build verdict icons if not AskVerdict.icons_cache: for i in range(self.ui.comboVerdict.count()): text = str(self.ui.comboVerdict.itemText(i)) color = VERDICT_TO_ROW_COLORS.get(text[0]) pixmap = QPixmap(16, 16) pixmap.fill(Qt.transparent) if color: painter = QPainter(pixmap) painter.setPen(Qt.black) painter.setBrush(color) painter.drawEllipse(0, 0, 15, 15) painter.end() AskVerdict.icons_cache[text] = QIcon(pixmap) # set verdict icons for i in range(self.ui.comboVerdict.count()): text = str(self.ui.comboVerdict.itemText(i)) self.ui.comboVerdict.setItemIcon(i, AskVerdict.icons_cache[text]) self.ui.evaluate.clicked.connect(self.on_evaluate_clicked)
def draw_image(name, q): image = QSvgGenerator() image.setSize(QSize(IMAGE_SIZE, IMAGE_SIZE)) image.setFileName(name + ".svg") painter = QPainter() painter.begin(image) painter.setBrush(Qt.white) painter.setPen(Qt.NoPen) painter.drawEllipse(QPointF(IMAGE_SIZE/2, IMAGE_SIZE/2), IMAGE_SIZE/2, IMAGE_SIZE/2) painter.setBrush(QBrush()) painter.setPen(QPen()) draw_defect(painter, q) draw_circle(painter, q) pen = QPen() pen.setWidth(7) pen.setColor(Qt.red) painter.setPen(pen) painter.drawLine(IMAGE_SIZE/2 - ARROW_SIZE, IMAGE_SIZE/2, IMAGE_SIZE/2 + ARROW_SIZE, IMAGE_SIZE/2) painter.drawLine(IMAGE_SIZE/2 + ARROW_SIZE, IMAGE_SIZE/2, IMAGE_SIZE/2 + ARROW_SIZE - 30, IMAGE_SIZE/2 + 20) painter.drawLine(IMAGE_SIZE/2 + ARROW_SIZE, IMAGE_SIZE/2, IMAGE_SIZE/2 + ARROW_SIZE - 30, IMAGE_SIZE/2 - 20) font = painter.font() font.setPixelSize(40) font.setBold(True) painter.setFont(font) painter.drawText(QPointF(IMAGE_SIZE/2 + ARROW_SIZE - 30, IMAGE_SIZE/2 - 30), "E") painter.end()
def updateCircle(self, s): size = s * self.zoom pixmap = QPixmap(self.width(), self.height()) pixmap.fill(Qt.transparent) #painter ellipse 1 painter = QPainter() painter.begin(pixmap) painter.setRenderHint(QPainter.Antialiasing) pen = QPen(Qt.red) pen.setWidth(3) painter.setPen(pen) brush = QBrush(Qt.green) painter.setBrush(brush) painter.drawEllipse( QRect(self.width() / 2 - size / 2, self.height() / 2 - size / 2, size, size)) painter.end() #painter ellipse 2 painter2 = QPainter() painter2.begin(pixmap) painter2.setRenderHint(QPainter.Antialiasing) pen2 = QPen(Qt.green) pen2.setStyle(Qt.DotLine) pen2.setWidth(3) painter2.setPen(pen2) painter2.drawEllipse( QRect(self.width() / 2 - size / 2, self.height() / 2 - size / 2, size, size)) painter2.end() self.ellipseLabel.setPixmap(QPixmap(pixmap)) self.lastSize = s
def updateCircle(self, s): size = s * self.zoom pixmap = QPixmap(self.width(), self.height()) pixmap.fill(Qt.transparent) #painter ellipse 1 painter = QPainter() painter.begin(pixmap) painter.setRenderHint(QPainter.Antialiasing) pen = QPen(Qt.red) pen.setWidth(3) painter.setPen(pen) brush = QBrush(Qt.green) painter.setBrush(brush) painter.drawEllipse(QRect(self.width()/2 - size/2, self.height()/2 - size/2, size, size)) painter.end() #painter ellipse 2 painter2 = QPainter() painter2.begin(pixmap) painter2.setRenderHint(QPainter.Antialiasing) pen2 = QPen(Qt.green) pen2.setStyle(Qt.DotLine) pen2.setWidth(3) painter2.setPen(pen2) painter2.drawEllipse(QRect(self.width()/2 - size/2, self.height()/2 - size/2, size, size)) painter2.end() self.ellipseLabel.setPixmap(QPixmap(pixmap)) self.lastSize = s
def setNameAndBrush(self, sigma, color=Qt.black): self.sigma = sigma self.setText(str(self.brushSize)) font = QFont() font.setPointSize(10) font.setBold(True) self.setFont(font) self.setForeground(color) pixmap = QPixmap(self.pixmapSize) pixmap.fill(Qt.transparent) painter = QPainter() painter.begin(pixmap) painter.setRenderHint(QPainter.Antialiasing, True) painter.setPen(color) brush = QBrush(color) painter.setBrush(brush) painter.drawEllipse( QRect( self.pixmapSize.width() / 2 - self.brushSize / 2, self.pixmapSize.height() / 2 - self.brushSize / 2, self.brushSize, self.brushSize, ) ) painter.end() self.setIcon(QIcon(pixmap)) self.setTextAlignment(Qt.AlignVCenter)
def paintEvent(self, ev): """Called when paint is needed, finds out which page to magnify.""" layout = self.parent().surface().pageLayout() pos = self.geometry().center() - self.parent().surface().pos() page = layout.pageAt(pos) if not page: return pagePos = pos - page.pos() newPage = Page(page, self._scale) if not newPage.same_page(self._page): if self._page: self._page.magnifier = None self._page = newPage self._page.magnifier = self relx = pagePos.x() / float(page.width()) rely = pagePos.y() / float(page.height()) image = cache.image(self._page) img_rect = QRect(self.rect()) if not image: cache.generate(self._page) image = cache.image(self._page, False) if image: img_rect.setWidth(self.width() * image.width() / self._page.width()) img_rect.setHeight(self.height() * image.height() / self._page.height()) if image: img_rect.moveCenter(QPoint(relx * image.width(), rely * image.height())) p = QPainter(self) p.drawImage(self.rect(), image, img_rect) p.setRenderHint(QPainter.Antialiasing, True) p.setPen(QPen(QColor(192, 192, 192, 128), 6)) p.drawEllipse(self.rect().adjusted(2, 2, -2, -2))
def paintEvent(self, event): painter = QPainter() painter.begin(self) painter.setRenderHint(QPainter.Antialiasing) painter.fillRect(event.rect(), QBrush(QColor(255, 255, 255, 127))) painter.setPen(QPen(Qt.NoPen)) for i in xrange(6): x_pos = self.width() / 2 + 30 * \ math.cos(2 * math.pi * i / 6.0) - 10 y_pos = self.height() / 2 + 30 * \ math.sin(2 * math.pi * i / 6.0) - 10 if (self.counter / 5) % 6 == i: linear_gradient = QLinearGradient( x_pos + 10, x_pos, y_pos + 10, y_pos) linear_gradient.setColorAt(0, QColor(135, 206, 250)) linear_gradient.setColorAt(1, QColor(0, 0, 128)) painter.setBrush(QBrush(linear_gradient)) else: linear_gradient = QLinearGradient( x_pos - 10, x_pos, y_pos + 10, y_pos) linear_gradient.setColorAt(0, QColor(105, 105, 105)) linear_gradient.setColorAt(1, QColor(0, 0, 0)) painter.setBrush(QBrush(linear_gradient)) painter.drawEllipse( x_pos, y_pos, 20, 20) painter.end()
def paintEvent(self, event): """ paint a circle for each bp """ painter = QPainter(self) painter.fillRect(event.rect(), self.palette().color(QPalette.Window)) painter.setPen(Qt.black) block = self.main_editor.firstVisibleBlock() block_num = block.blockNumber() top = int(self.main_editor.blockBoundingGeometry(block).translated( self.main_editor.contentOffset()).top()) bottom = top + int(self.main_editor.blockBoundingRect(block).height()) bounding_rect = self.main_editor.blockBoundingRect(block) bp_brush = QBrush(QColor(250, 0, 0, 128)) while block.isValid() and top <= event.rect().bottom(): if block.isVisible() and bottom >= event.rect().top(): line = block_num + 1 width = self.width() - self.MARGIN height = self.main_editor.fontMetrics().height() painter.setPen(Qt.black) painter.drawText(0, top, width, height, Qt.AlignRight, str(line)) if line in self.breakpoints: # paint break point diameter = min(width, height) - 3 painter.setPen(Qt.NoPen) painter.setBrush(bp_brush) painter.drawEllipse((width - diameter) / 2, top + 1.5, diameter, diameter) block = block.next() bounding_rect = self.main_editor.blockBoundingRect(block) top = bottom bottom = top + int(bounding_rect.height()) block_num += 1
def paintEvent(self, event): painter = QPainter(self) icon = self.icon_pressed if self.isDown() else self.icon if icon is not None: x = (self.width() - icon.width()) / 2 y = (self.height() - icon.height()) / 2 painter.drawPixmap(x, y, icon) else: width = self.width() height = self.height() padding = width / 5 radius = width - 2*padding palette = self.palette() # Mid is darker than Dark. Go figure... -Dan bg_color = palette.color(QPalette.Mid) if self.isDown() else palette.color(QPalette.Dark) fg_color = palette.color(QPalette.Window) # or QPalette.Base for white painter.setRenderHint(QPainter.Antialiasing, True) painter.setBrush(bg_color) painter.setPen(bg_color) painter.drawEllipse(padding, padding, radius, radius) padding = padding * 2 painter.setPen(fg_color) painter.drawLine(padding, padding, width-padding, height-padding) painter.drawLine(padding, height-padding, width-padding, padding)
def paintEvent(self, event=None): painter = QPainter(self) painter.setRenderHint(QPainter.Antialiasing, True) xOffset = self.width() / 3 yOffset = self.height() / 3 for x in range(3): for y in range(3): cell = self.grid[x][y] rect = (QRectF(x * xOffset, y * yOffset, xOffset, yOffset).adjusted(0.5, 0.5, -0.5, -0.5)) color = None if cell == RED: color = Qt.red elif cell == YELLOW: color = Qt.yellow if color is not None: painter.save() painter.setPen(Qt.black) painter.setBrush(color) painter.drawEllipse(rect.adjusted(2, 2, -2, -2)) painter.restore() if [x, y] == self.selected: painter.setPen(QPen(Qt.blue, 3)) else: painter.setPen(Qt.black) painter.drawRect(rect)
def updateFilledCircle(self, s): size = s * self.zoom pixmap = QPixmap(self.width(), self.height()) pixmap.fill(Qt.transparent) #painter filled ellipse p = QPalette() painter = QPainter() painter.begin(pixmap) painter.setRenderHint(QPainter.Antialiasing) brush = QBrush(p.link().color()) painter.setBrush(brush) painter.setOpacity(0.4) painter.drawEllipse( QRect(self.width() / 2 - size / 2, self.height() / 2 - size / 2, size, size)) painter.end() #painter ellipse 2 painter2 = QPainter() painter2.begin(pixmap) painter2.setRenderHint(QPainter.Antialiasing) pen2 = QPen(Qt.green) pen2.setWidth(1) painter2.setPen(pen2) painter2.drawEllipse( QRect(self.width() / 2 - size / 2, self.height() / 2 - size / 2, size, size)) painter2.end() self.ellipseLabel.setPixmap(QPixmap(pixmap)) self.lastSize = s
def paintEvent(self, event): painter = QPainter(self) icon = self.icon_pressed if self.isDown() else self.icon if icon is not None: x = (self.width() - icon.width()) / 2 y = (self.height() - icon.height()) / 2 painter.drawPixmap(x, y, icon) else: width = self.width() height = self.height() padding = width / 5 radius = width - 2 * padding palette = self.palette() # Mid is darker than Dark. Go figure... -Dan bg_color = palette.color( QPalette.Mid) if self.isDown() else palette.color( QPalette.Dark) fg_color = palette.color( QPalette.Window) # or QPalette.Base for white painter.setRenderHint(QPainter.Antialiasing, True) painter.setBrush(bg_color) painter.setPen(bg_color) painter.drawEllipse(padding, padding, radius, radius) padding = padding * 2 painter.setPen(fg_color) painter.drawLine(padding, padding, width - padding, height - padding) painter.drawLine(padding, height - padding, width - padding, padding)
def paintEvent(self, event): painter = QPainter() painter.begin(self) painter.setRenderHint(QPainter.Antialiasing) painter.setPen(QPen(Qt.NoPen)) painter.setBrush(QBrush(self.palette().color(QPalette.Highlight))) num = 8 painter.translate(self.width()/2, self.height()/2) painter.rotate(360.0/num * (self.counter % num)) for i in range(num): s = 25 + i x = 50 * math.cos(2.0 * math.pi * i / num) - s/2.0 y = 50 * math.sin(2.0 * math.pi * i / num) - s/2.0 painter.drawEllipse( x, y, s, s) painter.end()
def updateSlice(self): if self.ctslice_rgba is None: return img = self.ctslice_rgba.copy() # if self.seeds is not None: # if self.mode_draw: # if self.contour_mode == 'fill': # self.composeRgba(img, self.seeds, # self.seeds_colortable) # elif self.contour_mode == 'contours': # self.get_contours(img, self.seeds) # else: # self.overRgba(img, self.seeds, # self.seeds_colortable) if self.contours is not None: # if self.contour_mode == 'fill': if self.contours_mode_is_fill: self.composeRgba(img, self.contours.transpose().ravel(order="F"), CONTOURS_COLORTABLE) # elif self.contour_mode == 'contours': else: self.get_contours(img, self.contours) # masking out pixels under circle # for i in self.circle_m: # img[i, :] = [0, 0, 255, 255] image = QImage(img.flatten(), self.slice_size[0], self.slice_size[1], QImage.Format_ARGB32).scaled( self.imagesize ) painter = QPainter(self.image) painter.drawImage(0, 0, image) if self.show_mode == self.SHOW_CONTOURS: # and self.centers is not None: if self.centers is not None: pts = self.centers.nonzero() pen = QPen(Qt.red, 3) painter.setPen(pen) for i in range(len(pts[0])): painter.drawPoint(pts[1][i] * self.grid[0], pts[0][i] * self.grid[1]) if self.circle_active: pen = QPen(Qt.red, 3) painter.setPen(pen) center_offset = 0 # 0.5 radius_offset = 0 # 0.5 painter.drawEllipse( QPoint( (self.mouse_cursor[0] + center_offset) * self.grid[0], (self.mouse_cursor[1] + center_offset) * self.grid[1], ), (self.circle_r + radius_offset) * self.grid[0], (self.circle_r + radius_offset) * self.grid[1], ) painter.end() self.update()
def updateSlice(self): if self.ctslice_rgba is None: return img = self.ctslice_rgba.copy() # if self.seeds is not None: # if self.mode_draw: # if self.contour_mode == 'fill': # self.composeRgba(img, self.seeds, # self.seeds_colortable) # elif self.contour_mode == 'contours': # self.get_contours(img, self.seeds) # else: # self.overRgba(img, self.seeds, # self.seeds_colortable) if self.contours is not None: # if self.contour_mode == 'fill': if self.contours_mode_is_fill: self.composeRgba(img, self.contours.transpose().ravel(order='F'), CONTOURS_COLORTABLE) # elif self.contour_mode == 'contours': else: self.get_contours(img, self.contours) # masking out pixels under circle # for i in self.circle_m: # img[i, :] = [0, 0, 255, 255] image = QImage(img.flatten(), self.slice_size[0], self.slice_size[1], QImage.Format_ARGB32).scaled(self.imagesize) painter = QPainter(self.image) painter.drawImage(0, 0, image) if self.show_mode == self.SHOW_CONTOURS: # and self.centers is not None: if self.centers is not None: pts = self.centers.nonzero() pen = QPen(Qt.red, 3) painter.setPen(pen) for i in range(len(pts[0])): painter.drawPoint(pts[1][i] * self.grid[0], pts[0][i] * self.grid[1]) if self.circle_active: pen = QPen(Qt.red, 3) painter.setPen(pen) center_offset = 0 #0.5 radius_offset = 0 #0.5 painter.drawEllipse( QPoint((self.mouse_cursor[0] + center_offset) * self.grid[0], (self.mouse_cursor[1] + center_offset) * self.grid[1]), (self.circle_r + radius_offset) * self.grid[0], (self.circle_r + radius_offset) * self.grid[1]) painter.end() self.update()
def paintEvent(self, event): qp = QPainter() qp.begin(self) qp.setPen(self.color) qp.setBrush(self.color) d = min(self.height(), self.width()) - self.table_padding qp.drawEllipse(self.width() // 2 - d // 2, self.height() // 2 - d // 2, d, d) qp.end()
def draw_ball(self): painter = QPainter(self.field) painter.translate(self.field.width() / 2, self.field.height() / 2) ball = self.config.ball if ball is not None: painter.setPen(QPen(QColor(255, 165, 0), 1)) painter.setBrush(QColor(255, 165, 0)) painter.drawEllipse(ball.x, ball.y, 4, 4)
def paint(self, p: QPainter): p.setBrush(self.type().color()) p.drawEllipse(self.pos.x(), self.pos.y(), self.size, self.size) if len(self.lines) > 0: pen = p.pen() p.setBrush(self.type().color().darker()) p.setPen(QColor(0, 0, 0, 0)) p.drawEllipse(self.pos.x() + 2, self.pos.y() + 2, self.size - 4, self.size - 4) p.setPen(pen)
def paintEvent(self, event): if not self.program: return # TODO: get rid of this call #self.ResizeCanvas() paint = QPainter(self) paint.setPen(self.colors["line"]) paint.setFont(QtGui.QFont('Decorative', 10)) for e in self.program.edges: if e != self.selectedEdge: self.drawArrow( paint, self.vertices[e.source].x() + self.size / 2, self.vertices[e.source].y() + self.size / 2, self.vertices[e.destination].x() + self.size / 2, self.vertices[e.destination].y() + self.size / 2) else: paint.setPen(self.colors["selected"]) paint.setBrush(self.colors["selected"]) self.drawArrow( paint, self.vertices[e.source].x() + self.size / 2, self.vertices[e.source].y() + self.size / 2, self.vertices[e.destination].x() + self.size / 2, self.vertices[e.destination].y() + self.size / 2) paint.setPen(self.colors["line"]) paint.setBrush(self.colors["line"]) paint.setPen(self.colors["vertex"]) paint.setBrush(self.colors["vertex"]) for task in self.vertices.values(): if task == self.selectedVertex: paint.setPen(self.colors["selected"]) paint.setBrush(self.colors["selected"]) paint.drawEllipse(task) paint.setPen(self.colors["vertex"]) paint.setBrush(self.colors["vertex"]) else: paint.drawEllipse(task) paint.setPen(self.colors["text"]) for v in self.vertices.keys(): task = self.vertices[v] paint.drawText(task.center().x() - 2, task.center().y() + 5, str(v.number)) paint.drawText(task.topRight().x(), task.topRight().y() + 5, str(v.name)) paint.setPen(self.colors["line"]) if self.edgeDraw: self.drawArrow( paint, self.curEdge[0].x() + self.size / 2, self.curEdge[0].y() + self.size / 2, QCursor.pos().x() - self.mapToGlobal(self.geometry().topLeft()).x(), QCursor.pos().y() - self.mapToGlobal(self.geometry().topLeft()).y()) paint.end()
def paintEvent(self, event): qp = QPainter(self) if self.pressed: qp.setBrush(QBrush(Qt.red)) else: qp.setBrush(Qt.NoBrush) qp.setPen(Qt.red) qp.drawLine(110, 10, 110, 210) qp.drawLine(10, 110, 210, 110) qp.drawEllipse(self.x - 5, self.y - 5, 10, 10)
def paintEvent(self, event): qp = QPainter(self) if self.pressed: qp.setBrush(QBrush(Qt.red)) else: qp.setBrush(Qt.NoBrush) qp.setPen(Qt.red) qp.drawLine(110, 10, 110, 210) qp.drawLine(10, 110, 210, 110) qp.drawEllipse(self.x-5, self.y-5, 10, 10)
def drawSkel(self, worm_img, worm_qimg, row_data, roi_corner=(0, 0)): if not self.skel_file or not isinstance(self.trajectories_data, pd.DataFrame): return c_ratio_y = worm_qimg.width() / worm_img.shape[1] c_ratio_x = worm_qimg.height() / worm_img.shape[0] skel_id = int(row_data['skeleton_id']) qPlg = {} with tables.File(self.skel_file, 'r') as ske_file_id: for tt in ['skeleton', 'contour_side1', 'contour_side2']: dat = ske_file_id.get_node('/' + tt)[skel_id] dat[:, 0] = (dat[:, 0] - roi_corner[0]) * c_ratio_x dat[:, 1] = (dat[:, 1] - roi_corner[1]) * c_ratio_y qPlg[tt] = QPolygonF() for p in dat: qPlg[tt].append(QPointF(*p)) if 'is_good_skel' in row_data and row_data['is_good_skel'] == 0: self.skel_colors = { 'skeleton': (102, 0, 0), 'contour_side1': (102, 0, 0), 'contour_side2': (102, 0, 0) } else: self.skel_colors = { 'skeleton': (27, 158, 119), 'contour_side1': (217, 95, 2), 'contour_side2': (231, 41, 138) } pen = QPen() pen.setWidth(2) painter = QPainter() painter.begin(worm_qimg) for tt, color in self.skel_colors.items(): pen.setColor(QColor(*color)) painter.setPen(pen) painter.drawPolyline(qPlg[tt]) pen.setColor(Qt.black) painter.setBrush(Qt.white) painter.setPen(pen) radius = 3 painter.drawEllipse(qPlg['skeleton'][0], radius, radius) painter.end()
def createOnlineIcon(self,color): dim = QRect(0,0,32,32) img = QImage(dim.size(),QImage.Format_ARGB32) p = QPainter(img) p.setCompositionMode(QPainter.CompositionMode_Source) p.fillRect(dim,Qt.transparent) p.setCompositionMode(QPainter.CompositionMode_SourceOver) p.setRenderHints(QPainter.Antialiasing) p.setPen(Qt.black) p.setBrush(color) p.drawEllipse(dim.adjusted(1,1,-2,-2)) return img
def paintEvent(self, e): if self._on: painter = QPainter(self) painter.setPen(self.color) painter.setBrush(self.color) painter.drawRect(0, 0, self.width(), self.height()) painter.setPen(self.color.light(130)) painter.setBrush(self.color.light(130)) painter.drawEllipse(0, 0, self.width(), self.height()) painter = None QFrame.paintEvent(self, e)
def paintEvent(self, event): w, h, cx, cy, r = self.clockFaceDetails() painter = QPainter() painter.begin(self) painter.setRenderHint(QPainter.Antialiasing) painter.fillRect(event.rect(), self.background) painter.setBrush(QBrush(Qt.NoBrush)) painter.setPen(QPen(Qt.black)) painter.drawEllipse(cx - r * 1.1, cy - r * 1.1, 2.2 * r, 2.2 * r) painter.setBrush(QBrush(Qt.NoBrush)) painter.setPen(QPen(Qt.black, 3)) for i in range(12): angle = 2 * i * math.pi / 12 painter.drawLine(cx + (0.9 * r * math.cos(angle)), cy + (0.9 * r * math.sin(angle)), cx + (r * math.cos(angle)), cy + (r * math.sin(angle))) painter.setPen(QPen(Qt.black, 2)) for i in range(60): angle = 2 * i * math.pi / 60 painter.drawLine(cx + (0.95 * r * math.cos(angle)), cy + (0.95 * r * math.sin(angle)), cx + (r * math.cos(angle)), cy + (r * math.sin(angle))) hour, minute = self.displayTime hour = hour % 12 angle = (-math.pi / 2) + (2 * hour * math.pi / 12) + (2 * math.pi / 12 * minute / 60.0) painter.setPen(QPen(Qt.black, 8, Qt.SolidLine, Qt.RoundCap)) painter.drawLine(cx, cy, cx + (0.55 * r * math.cos(angle)), cy + (0.55 * r * math.sin(angle))) angle = (-math.pi / 2) + (2 * minute * math.pi / 60) painter.drawLine(cx, cy, cx + (0.8 * r * math.cos(angle)), cy + (0.8 * r * math.sin(angle))) painter.setPen(QPen(self.foreground)) painter.setFont(self.font()) rect = QRect(0, self.height() * 0.75, self.width(), self.maxHeight) painter.drawText(rect, Qt.AlignCenter, "%02i:%02i" % self.displayTime) painter.end()
def draw_big_needle_center_point(self, diameter=30): painter = QPainter(self) # painter.setRenderHint(QtGui.QPainter.HighQualityAntialiasing) painter.setRenderHint(QPainter.Antialiasing) # Koordinatenursprung in die Mitte der Flaeche legen painter.translate(self.width() / 2, self.height() / 2) painter.setPen(Qt.NoPen) # painter.setPen(Qt.NoPen) painter.setBrush(self.CenterPointColor) # diameter = diameter # self.widget_diameter/6 painter.drawEllipse(int(-diameter / 2), int(-diameter / 2), int(diameter), int(diameter))
def createOnlineIcon(self, color): dim = QRect(0, 0, 32, 32) img = QImage(dim.size(), QImage.Format_ARGB32) p = QPainter(img) p.setCompositionMode(QPainter.CompositionMode_Source) p.fillRect(dim, Qt.transparent) p.setCompositionMode(QPainter.CompositionMode_SourceOver) p.setRenderHints(QPainter.Antialiasing) p.setPen(Qt.black) p.setBrush(color) p.drawEllipse(dim.adjusted(1, 1, -2, -2)) return img
def draw_robots(self): painter = QPainter(self.field) painter.translate(self.field.width() / 2, self.field.height() / 2) for r in self.config.robots_yellow: painter.setPen(QPen(Qt.yellow, 1)) painter.setBrush(Qt.yellow) painter.drawEllipse(r.pose.x, r.pose.y, 15, 15) for r in self.config.robots_blue: painter.setPen(QPen(Qt.blue, 1)) painter.setBrush(Qt.blue) painter.drawEllipse(r.pose.x, r.pose.y, 15, 15)
def paintEvent(self, event): QWidget.paintEvent(self, event) painter = QPainter(self) painter.setRenderHint(QPainter.Antialiasing) cor = self._servico.getStatus().corStatus() if self._servico.estaConectado() else Status(Status.OFFLINE).corStatus() painter.setOpacity(0.7) painter.setBrush(cor) painter.drawEllipse(self.rect().adjusted(7,5,-7,-5)) painter.drawPixmap(self.rect(), QPixmap('images/conexao.png')) painter.end()
def paintEvent(self, event): """ Draw the QImage on screen. """ textPosX,textPosY = 10,200 painter = QPainter(self) painter.drawImage(painter.viewport(), self._image) innerFont = QFont() innerFont.setPointSize(12) painter.setFont(innerFont) painter.setPen(QColor(QtCore.Qt.white)) painter.drawText(10,180,'Current Action:') painter.drawText(10,200,self._currentMovement) self.drawMoreText(painter,10,300,['Control Buttons:', 'w,s - Walking Forwards/Backwards', 'q,e - Walking Left/Right', 'a,d - Turning Left/Right', 'x - stopping', 'Space - standing up', 'Ctrl - crouch', 'Escape,Enter - restMode, wakeUp', '1 - Grabbing small', '2 - Grabbing large', '3 - Grabbing Kuscheltier', '4 - Grabbing bottle']) self.drawMoreText(painter,self.width()-300-25,300,['Dialog Control:({})'.format(self._attitude), 'u - Introduction', 'i - Ask for object', 'h - Object is Somat', 'j - Object is Muesli', 'k - Object is Bottle', 'l - Object is Kuscheltier', 'n - Wertstoff', 'm - Altpapier', 'o - Ask for help', 'z - Ask proband to repeat sentence', 'p - Repeat task', '0(Null) - construct initial state', 't - Goodbye', 'b - thanks', '# - Start free Speech(PopUp)']) self.drawMoreText(painter,100,50,['Movement Speeds','Forward: {}'.format(self._currentSpeeds['Forward']),'Leftward: {}'.format(self._currentSpeeds['Leftward']),'CounterClockwise: {}'.format(self._currentSpeeds['CounterClockwise'])]) pen = QPen() pen.setColor(QColor(QtCore.Qt.red)) pen.setWidth(5) painter.setPen(pen) painter.drawEllipse(20,15,60,30) pen.setColor(QColor(QtCore.Qt.blue)) painter.setPen(pen) painter.drawPolygon(self.rotatePolygon(arrowPolygon,math.degrees(self._motionProxy.getAngles('HeadYaw',True)[0]),[30,20]))
def draw_bkgnd(self): # initialize grass self.field.fill(Qt.green) # setup painter painter = QPainter(self.field) painter.setPen(QPen(Qt.white, 3)) # draw field lines painter.drawLine(450, 0, 450, 600) painter.drawRect(0, 0, 900, 600) painter.drawRect(0, 200, 100, 200) painter.drawRect(800, 200, 100, 200) painter.drawEllipse(400, 250, 100, 100)
def updateTerritoryTroopCount(self, name, count): t = self.game.board.getTerritory(name) x = t.center[0] - 12 y = t.center[1] - 12 width = 25 height = 25 painter = QPainter() painter.begin(self.troopCountMap) painter.setPen(Qt.white) painter.setBrush(Qt.black) painter.drawEllipse(x, y, width, height) painter.drawText(x, y, width, height, Qt.AlignCenter, str(t.troopCount)) painter.end() self.scaledTroopCountMap = self.troopCountMap.scaled(self.imageSize()) self.update()
def data(self, index, role): ''' Reimplement, see labelListModel or boxListModel for concrete example :param index: :param role: ''' if role == Qt.EditRole and index.column() == self.ColumnID.Name: name = self._elements[index.row()].name return decode_to_qstring(name, 'utf-8') elif role == Qt.ToolTipRole and index.column() == self.ColumnID.Delete: s = "Delete {}".format(self._elements[index.row()].name) return decode_to_qstring(s, 'utf-8') elif role == Qt.ToolTipRole and index.column() == self.ColumnID.Name: suffix = self._getToolTipSuffix(index.row()) s = "{}\nDouble click to rename {}".format( self._elements[index.row()].name, suffix) return decode_to_qstring(s, 'utf-8') elif role == Qt.DisplayRole and index.column() == self.ColumnID.Name: name = self._elements[index.row()].name return decode_to_qstring(name, 'utf-8') if role == Qt.DecorationRole and index.column( ) == self.ColumnID.Delete: if index.row() in self.unremovable_rows: return row = index.row() pixmap = QPixmap(_NPIXELS, _NPIXELS) pixmap.fill(Qt.transparent) painter = QPainter() painter.begin(pixmap) painter.setRenderHint(QPainter.Antialiasing) painter.setBrush(QColor("red")) painter.drawEllipse(1, 1, _NPIXELS - 2, _NPIXELS - 2) pen = QPen(QColor("black")) pen.setWidth(2) painter.setPen(pen) x = _XSTART y = _NPIXELS - x painter.drawLine(x, x, y, y) painter.drawLine(y, x, x, y) painter.end() icon = QIcon(pixmap) return icon
def paintEvent(self, event): painter = QPainter() painter.begin(self) # Selects a color from the dictionary according to the status painter.setBrush(self.d_color[self.status]) # Places the circle in the middle of the drawing area rect_aux = QRectF(self.width()/2 - 5, self.height()/2 - 5 , 2 * self.radius, 2 * self.radius) # Paints circle painter.drawEllipse(rect_aux) painter.end() return QWidget.paintEvent(self, event)
def paintEvent(self, e): if self._on: painter = QPainter(self) painter.setPen(self.color) painter.setBrush(self.color) painter.drawRect(0, 0, self.width(), self.height()) painter.setPen(self.color.light(130)) painter.setBrush(self.color.light(175)) x_border = self.width() * .2 y_border = self.height() * .2 painter.drawEllipse(x_border, y_border, self.width() - x_border * 2, self.height() - y_border * 2) painter = None QFrame.paintEvent(self, e)
def drawSkel(self, worm_img, worm_qimg, row_data, roi_corner = (0,0)): if not self.skel_file or not isinstance(self.trajectories_data, pd.DataFrame): return c_ratio_y = worm_qimg.width()/worm_img.shape[1]; c_ratio_x = worm_qimg.height()/worm_img.shape[0]; skel_id = int(row_data['skeleton_id']) qPlg = {} with tables.File(self.skel_file, 'r') as ske_file_id: for tt in ['skeleton', 'contour_side1', 'contour_side2']: dat = ske_file_id.get_node('/' + tt)[skel_id]; dat[:,0] = (dat[:,0]-roi_corner[0])*c_ratio_x dat[:,1] = (dat[:,1]-roi_corner[1])*c_ratio_y qPlg[tt] = QPolygonF() for p in dat: qPlg[tt].append(QPointF(*p)) if 'is_good_skel' in row_data and row_data['is_good_skel'] == 0: self.skel_colors = {'skeleton':(102, 0, 0 ), 'contour_side1':(102, 0, 0 ), 'contour_side2':(102, 0, 0 )} else: self.skel_colors = {'skeleton':(27, 158, 119 ), 'contour_side1':(217, 95, 2), 'contour_side2':(231, 41, 138)} pen = QPen() pen.setWidth(2) painter = QPainter() painter.begin(worm_qimg) for tt, color in self.skel_colors.items(): pen.setColor(QColor(*color)) painter.setPen(pen) painter.drawPolyline(qPlg[tt]) pen.setColor(Qt.black) painter.setBrush(Qt.white) painter.setPen(pen) radius = 3 painter.drawEllipse(qPlg['skeleton'][0], radius, radius) painter.end()
def data(self, index, role): if role == Qt.EditRole and index.column() == 0: return self._labels[index.row()].color if role == Qt.EditRole and index.column() == 1: return self._labels[index.row()].name if role == Qt.ToolTipRole and index.column() == 0: return "Hex code : " + self._labels[ index.row()].color.name() + "\n DoubleClick to change" if role == Qt.ToolTipRole and index.column() == 1: suffix = self._getToolTipSuffix(index.row()) return self._labels[ index.row()].name + "\n DoubleClick to rename" + suffix if role == Qt.ToolTipRole and index.column() == 2: return "Delete " + self._labels[index.row()].name if role == Qt.DecorationRole and index.column() == 0: row = index.row() value = self._labels[row] pixmap = QPixmap(26, 26) pixmap.fill(value.color) icon = QIcon(pixmap) return icon if role == Qt.DecorationRole and index.column() == 2: row = index.row() pixmap = QPixmap(26, 26) pixmap.fill(Qt.transparent) painter = QPainter() painter.begin(pixmap) painter.setRenderHint(QPainter.Antialiasing) painter.setBrush(QColor("red")) painter.drawEllipse(1, 1, 24, 24) pen = QPen(QColor("black")) pen.setWidth(2) painter.setPen(pen) painter.drawLine(8, 8, 18, 18) painter.drawLine(18, 8, 8, 18) painter.end() icon = QIcon(pixmap) return icon if role == Qt.DisplayRole and index.column() == 1: row = index.row() value = self._labels[row] return value.name
def data(self, index, role): ''' Reimplement, see labelListModel or boxListModel for concrete example :param index: :param role: ''' if role == Qt.EditRole and index.column() == self.ColumnID.Name: return self._elements[index.row()].name elif role == Qt.ToolTipRole and index.column() == self.ColumnID.Delete: return "Delete {}".format(self._elements[index.row()].name) elif role == Qt.ToolTipRole and index.column() == self.ColumnID.Name: suffix = self._getToolTipSuffix(index.row()) return "{}\nDouble click to rename {}".format( self._elements[index.row()].name, suffix) elif role == Qt.DisplayRole and index.column() == self.ColumnID.Name: row = index.row() value = self._elements[row] return value.name if role == Qt.DecorationRole and index.column() == self.ColumnID.Delete: if index.row() in self.unremovable_rows: return row = index.row() pixmap = QPixmap(_NPIXELS, _NPIXELS) pixmap.fill(Qt.transparent) painter = QPainter() painter.begin(pixmap) painter.setRenderHint(QPainter.Antialiasing) painter.setBrush(QColor("red")) painter.drawEllipse(1, 1, _NPIXELS - 2, _NPIXELS - 2) pen = QPen(QColor("black")) pen.setWidth(2) painter.setPen(pen) x = _XSTART y = _NPIXELS - x painter.drawLine(x, x, y, y) painter.drawLine(y, x, x, y) painter.end() icon = QIcon(pixmap) return icon
def paintEvent(self, event): qp = QPainter() qp.begin(self) qp.translate(self.width()/2, self.height()/2); for i in range(24): qp.drawLine(88, 0, 96, 0); qp.rotate(15.0); qp.rotate(((self.count % 24)*15+270)%360) qp.drawLine(50, 0, 80, 0) if self.pressed: qp.setBrush(QBrush(Qt.red)) qp.drawEllipse(-50, -50, 100, 100) qp.end()
def paintEvent(self, e): qp = QPainter() qp.begin(self) if self.step == 'waiting_to_start': qp.setPen(QPen(Qt.red, 20, Qt.SolidLine)) qp.setFont(QFont('Decorative', 20)) if self.step == 'calibration_started': qp.setPen(QPen(Qt.red, 35, Qt.SolidLine)) qp.drawEllipse(self.x, self.y, 40, 40) if self.step == 'show_gaze': qp.setPen(QPen(Qt.red, 10, Qt.SolidLine)) qp.drawEllipse(self.x, self.y, 10, 10) qp.end()
def add_item(self, thumbnail_image, date, info, day_index=-1, archive_path=None): """ @param thumbnail_image: Image to be used in thumbnail @param date: Date of image @param info: Copyright info for image @param day_index: Day index of image @param archive_path: Path to the local file, or None if image source is the RSS feed. @type thumbnail_image: QImage @type date: QDate @type info: str @type day_index: int @type archive_path: unicode or None """ if date.year() == QDate.currentDate().year(): date_label = str(date.toString('dddd dd MMMM')) else: date_label = str(date.toString('dddd dd MMMM, yyyy')) if date_label in self.added_dates: # This date has already been added. Don't bother adding it again. print 'Ignored', date_label return if archive_path: pixmap = QPixmap.fromImage(thumbnail_image) painter = QPainter(pixmap) painter.setRenderHint(QPainter.Antialiasing) circle_area = QRect(pixmap.width() - 35, pixmap.height() - 35, 25, 25) painter.setOpacity(0.7) painter.setPen(Qt.lightGray) painter.setBrush(Qt.lightGray) painter.drawEllipse(circle_area) painter.drawPixmap(circle_area.topLeft(), self.pixmap_hd) painter.end() else: pixmap = QPixmap.fromImage( thumbnail_image.scaled(QSize(200, 125), Qt.IgnoreAspectRatio, Qt.SmoothTransformation)) icon = QIcon(pixmap) widget_item = ListWidgetItem(icon, date_label, self) widget_item.setToolTip(info) widget_item.image_day_index = day_index widget_item.archive_path = archive_path widget_item.image_date = date self.added_dates.add(date_label)
def data(self, index, role): if role == Qt.EditRole and index.column() == 0: return self._labels[index.row()].color if role == Qt.EditRole and index.column() == 1: return self._labels[index.row()].name if role == Qt.ToolTipRole and index.column() == 0: return "Hex code : " + self._labels[index.row()].color.name() + "\n DoubleClick to change" if role == Qt.ToolTipRole and index.column() == 1: suffix = self._getToolTipSuffix(index.row()) return self._labels[index.row()].name + "\n DoubleClick to rename" + suffix if role == Qt.ToolTipRole and index.column() == 2: return "Delete " + self._labels[index.row()].name if role == Qt.DecorationRole and index.column() == 0: row = index.row() value = self._labels[row] pixmap = QPixmap(26, 26) pixmap.fill(value.color) icon = QIcon(pixmap) return icon if role == Qt.DecorationRole and index.column() == 2: row = index.row() pixmap = QPixmap(26, 26) pixmap.fill(Qt.transparent) painter = QPainter() painter.begin(pixmap) painter.setRenderHint(QPainter.Antialiasing) painter.setBrush(QColor("red")) painter.drawEllipse(1, 1, 24, 24) pen = QPen(QColor("black")) pen.setWidth(2) painter.setPen(pen) painter.drawLine(8,8, 18,18) painter.drawLine(18,8, 8,18) painter.end() icon = QIcon(pixmap) return icon if role == Qt.DisplayRole and index.column() == 1: row = index.row() value = self._labels[row] return value.name
def paintEvent(self, event): painter = QPainter() painter.begin(self) painter.setRenderHint(QPainter.Antialiasing) painter.fillRect(event.rect(), QBrush(QColor(255, 255, 255, 127))) painter.setPen(QPen(Qt.NoPen)) for i in xrange(6): if (self.counter / 5) % 6 == i: painter.setBrush(QBrush(QColor(127 + (self.counter % 5)*32, 127, 127))) else: painter.setBrush(QBrush(QColor(127, 127, 127))) painter.drawEllipse( self.width()/2 + 30 * math.cos(2 * math.pi * i / 6.0) - 10, self.height()/2 + 30 * math.sin(2 * math.pi * i / 6.0) - 10, 20, 20) painter.end()
def paintEvent(self, event): painter = QPainter() painter.begin(self) painter.setRenderHint(QPainter.Antialiasing) painter.fillRect(event.rect(), QBrush(QColor(255, 255, 255, 127))) painter.setPen(QPen(Qt.NoPen)) for i in range(3): x = self.width() / 2.3 + (30 * i) y = self.height() / 2 # Gradiente gradient = QLinearGradient(x + 10, x, y + 10, y) gradient.setColorAt(0, QColor("black")) gradient.setColorAt(1, QColor("gray")) painter.setBrush(QBrush(gradient)) if self.counter / 2 % 3 == i: painter.drawEllipse(x, y, 25, 25) else: painter.drawEllipse(x, y, 20, 20) painter.end()
def rounded_corners(image, radius=0, **kwargs): """ Appliquer un découpage du masque de l'image en rectangle arrondi :param image: image PIL :param radius: rayon en pixels des coins arrondis """ if radius == "full" or isinstance(radius, (int, float)): qimage = _pil_to_qt(image) newimage = _qt_canvas(image) painter = QPainter(newimage) painter.setRenderHint(QPainter.Antialiasing, True) painter.setBrush(QBrush(qimage)) painter.setPen(QColor(0, 0, 0, 0)) if radius == "full": # découper en ellipse painter.drawEllipse(0, 0, qimage.width(), qimage.height()) elif isinstance(radius, (int, float)): # découper en rectangle arrondi painter.drawRoundedRect(0, 0, qimage.width(), qimage.height(), radius, radius) painter.end() return _qt_to_pil(newimage) return image
def paintEvent( self, event ): # Wenn das Widget disabled ist, muß ich den Alphakanal meiner Farben verändern. frameWidth = 16 dotCenter = QPoint( 0, 0 ) color = self.__colorEmpty if self.__value: color = self.__colorFull # Damit der Rahmen nicht irgendwie abgeschnitten wird, muß der Kreis entsprechend kleiner sein. dotRadius = 100 framePen = QPen( frameWidth ) framePen.setColor( self.__colorFrame ) dotDiameter = 2 * dotRadius + frameWidth painter = QPainter( self ) windowWidth = self.width() windowHeight = float( self.height() ) side = min( windowWidth, windowHeight ) painter.setRenderHint( QPainter.Antialiasing ) if ( not self.isEnabled() ): painter.setOpacity( .5 ) painter.translate( side / 2, self.height() / 2 ) painter.scale( side / dotDiameter, side / dotDiameter ) painter.setPen( framePen ) painter.setBrush( color ) painter.save() painter.drawEllipse( dotCenter, dotRadius, dotRadius ) painter.restore()
def setNameAndBrush(self, sigma, color=Qt.black): self.sigma = sigma self.setText(decode_to_qstring("σ=%.1fpx" % self.sigma, 'utf-8')) # This file is encoded as utf-8, so this string should be decoded as such. total_window = (1 + 2 * int(self.sigma * self.window_size + 0.5) ) self.setToolTip( "sigma = {:.1f} pixels, window diameter = {:.1f}".format(self.sigma, total_window) ) font = QFont() font.setPointSize(10) font.setBold(True) self.setFont(font) self.setForeground(color) pixmap = QPixmap(self.pixmapSize) pixmap.fill(Qt.transparent) painter = QPainter() painter.begin(pixmap) painter.setRenderHint(QPainter.Antialiasing, True) painter.setPen(color) brush = QBrush(color) painter.setBrush(brush) painter.drawEllipse(QRect(self.pixmapSize.width()/2 - self.brushSize/2, self.pixmapSize.height()/2 - self.brushSize/2, self.brushSize, self.brushSize)) painter.end() self.setIcon(QIcon(pixmap)) self.setTextAlignment(Qt.AlignVCenter)