def paintEvent(self, event): paintRegion = event.region() painter = QPainter(self) pal = self.palette() for shape in self._shapeList: rect = shape.rect if not paintRegion.contains(rect): continue shapeType = shape.type painter.setBrush(shape.color) if shapeType == ShapeType.Rectangle: print "rectangle" painter.drawRect(rect) elif shapeType == ShapeType.Circle: print "circle" painter.drawEllipse(rect) # paint the shape name painter.setBrush(pal.text()) painter.drawText(rect, Qt.AlignCenter, shape.name)
def paintEvent(self, event): painter = QPainter() painter.begin(self) painter.setRenderHint(QPainter.HighQualityAntialiasing) painter.setRenderHint(QPainter.Antialiasing) painter.setRenderHint(QPainter.SmoothPixmapTransform) # change the look for on/off if self.isChecked(): # blue fill brush = QBrush(self.color1) painter.setBrush(brush) painter.drawRoundedRect(0, 7, self.width() - 2, self.height() - 15, self.height() / 2 - 10, self.height() / 2) brush = QBrush(self.lighter(self.color1)) painter.setBrush(brush) painter.drawEllipse(self.width() - self.height(), 0, self.height(), self.height()) else: # gray fill brush = QBrush(self.color2) painter.setBrush(brush) painter.drawRoundedRect(1, 7, self.width() - 3, self.height() - 15, self.height() / 2 - 10, self.height() / 2) brush = QBrush(QColor(100, 100, 100)) painter.setBrush(brush) painter.drawEllipse(0, 0, self.height(), self.height()) painter.end()
def paintEvent(self, ev): if self.isEnabled(): color = self.color colorBorder = [0.4, 0.4, 0.4] else: color = [0.8, 0.8, 0.8] colorBorder = [0.7, 0.7, 0.7] painter = QPainter(self) painter.setRenderHint(QPainter.Antialiasing) painter.setRenderHint(QPainter.HighQualityAntialiasing) if self.isChecked(): pen = QPen(QColor.fromRgbF(0.2, 0.2, 0.2)) pen.setWidth(2.0) else: pen = QPen(QColor.fromRgbF(colorBorder[0], colorBorder[1], colorBorder[2])) pen.setWidth(1.0) size = self.size() sizeCircle = 12.0 x = size.width() / 2.0 - (sizeCircle / 2.0) y = size.height() / 2.0 - (sizeCircle / 2.0) rect = QRectF(x, y, sizeCircle, sizeCircle) painter.setPen(pen) painter.setBrush(QColor.fromRgbF(color[0], color[1], color[2])) painter.drawEllipse(rect)
def paintEvent(self, ev): if self.isEnabled(): color = self.color colorBorder = [0.4, 0.4, 0.4] else: color = [0.8, 0.8, 0.8] colorBorder = [0.7, 0.7, 0.7] painter = QPainter(self) painter.setRenderHint(QPainter.Antialiasing) painter.setRenderHint(QPainter.HighQualityAntialiasing) if self.isChecked(): pen = QPen(QColor.fromRgbF(0.2, 0.2, 0.2)) pen.setWidth(2.0) else: pen = QPen( QColor.fromRgbF(colorBorder[0], colorBorder[1], colorBorder[2])) pen.setWidth(1.0) size = self.size() sizeCircle = 12.0 x = size.width() / 2.0 - (sizeCircle / 2.0) y = size.height() / 2.0 - (sizeCircle / 2.0) rect = QRectF(x, y, sizeCircle, sizeCircle) painter.setPen(pen) painter.setBrush(QColor.fromRgbF(color[0], color[1], color[2])) painter.drawEllipse(rect)
class View(QMainWindow, Ui_MainWindow): points = [] def __init__(self): super().__init__() self.setupUi(self) self.show() self.painter = QPainter() def paintEvent(self, event): self.painter.begin(self) for p in self.points: self.painter.setPen(QColor(p.clr[0], p.clr[1], p.clr[2])) self.painter.drawEllipse(p.x.value, p.y.value, p.rad.value, p.rad.value) self.painter.end() def resizeEvent(self, event): for p in self.points: p.resize(self.canvas.size().width(), self.canvas.size().height()) def closeEvent(self, event): for p in self.points: p.join() event.accept()
def draw(self, endPoint_x, endPoint_y): painter = QPainter(self.image) painter.setPen(QPen( self.myPenColor, self.myPenWidth, QtCore.Qt.SolidLine, QtCore.Qt.RoundCap, QtCore.Qt.RoundJoin)) painter.setClipping(True) painter.setRenderHint(QPainter.SmoothPixmapTransform, True) painter.setRenderHint(QPainter.HighQualityAntialiasing, True) painter.setRenderHint(QPainter.Antialiasing, True) painter.setCompositionMode(QPainter.CompositionMode()) if self.tools['circle']: x1 = self.firstPoint_x y1 = self.firstPoint_y x2 = endPoint_x y2 = endPoint_y painter.drawEllipse(x1, y1, (x2 - x1), (y2 - y1)) if self.tools['eraser']: painter.setPen(QPen(QtCore.Qt.white, 10, QtCore.Qt.SolidLine)) painter.drawLine( self.firstPoint_x, self.firstPoint_y, endPoint_x, endPoint_y) self.firstPoint_x = endPoint_x self.firstPoint_y = endPoint_y if self.tools['pen']: painter.drawLine( self.firstPoint_x, self.firstPoint_y, endPoint_x, endPoint_y) self.firstPoint_x = endPoint_x self.firstPoint_y = endPoint_y if self.tools['line'] and self.flag: painter.drawLine( self.firstPoint_x, self.firstPoint_y, endPoint_x, endPoint_y) if self.tools['rect']: dx = endPoint_x - self.firstPoint_x dy = endPoint_y - self.firstPoint_y painter.drawRect(self.firstPoint_x, self.firstPoint_y, dx, dy) if self.tools['roundRect']: x1 = self.firstPoint_x y1 = self.firstPoint_y dx = endPoint_x - self.firstPoint_x dy = endPoint_y - self.firstPoint_y if x1 > endPoint_x and y1 > endPoint_y: painter.drawRoundedRect( endPoint_x, endPoint_y, -dx, -dy, 20, 20, 0) else: painter.drawRoundedRect(x1, y1, dx, dy, 20., 20.) self.modified = True self.update()
def paintEvent(self, event): painter = QPainter() painter.begin(self) painter.setRenderHint(QPainter.HighQualityAntialiasing) painter.setRenderHint(QPainter.Antialiasing) painter.setRenderHint(QPainter.SmoothPixmapTransform) painter.setBrush(self.color) if self.effect_size == self.radius: painter.drawEllipse(1, 1, self.radius - 1, self.radius - 1) painter.drawPixmap(QRect(14, 14, self.radius / 2, self.radius / 2), self.pixmap) else: painter.drawEllipse(self.width() / 2, self.height() / 2, self.effect_size, self.effect_size) painter.end()
def paintEvent(self, event): painter = QPainter() painter.begin(self) colour = self._colour if not self._lit: colour = self._colour.darker(300) painter.setPen(QPen(Qt.black, 1)) painter.setBrush(QBrush(colour)) rect = event.rect() radius = min(rect.width(), rect.height()) / 3 painter.drawEllipse(rect.center(), radius, radius) painter.end()
def paintEvent(self, event): painter = QPainter() painter.begin(self) if self._lit: self._colour.setAlphaF(1) else: self._colour.setAlphaF(.25) painter.setPen(QPen(self._colour, 1)) painter.setBrush(QBrush(self._colour)) rect = event.rect() radius = min(rect.width(), rect.height()) / 3 painter.drawEllipse(rect.center(), radius, radius) painter.end()
def drawPreview(self, endPoint_x, endPoint_y): painter = QPainter(self.imagePreview) painter.setPen(QPen( self.myPenColor, self.myPenWidth, QtCore.Qt.SolidLine, QtCore.Qt.RoundCap, QtCore.Qt.RoundJoin)) painter.setClipping(True) painter.setRenderHint(QPainter.SmoothPixmapTransform, True) painter.setRenderHint(QPainter.HighQualityAntialiasing, True) painter.setRenderHint(QPainter.Antialiasing, True) painter.setOpacity(0.5) if self.tools['circle']: x1 = self.firstPoint_x y1 = self.firstPoint_y x2 = endPoint_x y2 = endPoint_y painter.drawEllipse(x1, y1, (x2 - x1), (y2 - y1)) if self.tools['line']: painter.drawLine( self.firstPoint_x, self.firstPoint_y, endPoint_x, endPoint_y) if self.tools['rect']: painter.drawRect( self.firstPoint_x, self.firstPoint_y, endPoint_x - self.firstPoint_x, endPoint_y - self.firstPoint_y) if self.tools['roundRect']: x1 = self.firstPoint_x y1 = self.firstPoint_y dx = endPoint_x - self.firstPoint_x dy = endPoint_y - self.firstPoint_y if x1 > endPoint_x and y1 > endPoint_y: painter.drawRoundedRect( endPoint_x, endPoint_y, -dx, -dy, 20, 20, 0) else: painter.drawRoundedRect(x1, y1, dx, dy, 20., 20.) self.update()
def testFromData(self): picture = QPicture() painter = QPainter() painter.begin(picture) painter.drawEllipse(10, 20, 80, 70) painter.end() data = picture.data() picture2 = QPicture() picture2.setData(data) self.assertEqual(picture2.data(), picture.data()) w = MyWidget() w._picture = picture2 w._app = self.app QTimer.singleShot(300, w.show) self.app.exec_()
def paintEvent(self, event): """ This function handles the low level painting of component. :param event: :return: """ painter = QPainter() painter.begin(self) painter.setRenderHint(QPainter.Antialiasing) if self.__flag == 1: painter.end() return # setting the masking ellipse painter.setClipRegion(self.__clip) self.__color.setAlpha(self.__maxOpacity) painter.setBrush(QBrush(self.__color)) painter.setPen(QPen(QColor(0, 0, 0, 0))) painter.drawEllipse(self.__origin, self.__r, self.__r) painter.end()
def paintEvent(self, event): ''' Method to run on paint events ''' painter = QPainter() # Get a QPainter object painter.begin(self) # Begin painting painter.setRenderHint(QPainter.Antialiasing) # Set a rendering option painter.setBrush(Qt.transparent) # Set the paint brush to transparent painter.drawRect(0, 0, 20, 20) # Draw a rectangle with width = height = 20 painter.setBrush(Qt.green) # Set the paint brush color to green painter.drawEllipse(QPoint(10, 10), 9, 9) # Draw a circle that fills most of the rectangle painter.end()
def update_cursor(self, shape, size): self.cursor_size = size self.shape = shape cursor_pix = QPixmap(size, size) cursor_pix.fill(Qt.transparent) painter = QPainter(cursor_pix) painter.setPen(QColor(255, 0, 0)) if shape == 'circle': painter.drawEllipse(0, 0, size - 1, size - 1) elif shape == 'square': painter.drawRect(0, 0, size - 1, size - 1) elif shape == "magic wand": magic_wand.render(painter, QRect(0, 0, 20, 20)) cursor = QCursor(cursor_pix, 0, 0) self.setCursor(cursor) del painter
def createPixmapIcon(self): self.markerIcon = QPixmap(MARKER_WIDTH, MARKER_HEIGHT) self.markerIcon.fill(Qt.transparent) painter = QPainter(self.markerIcon) p1 = QPoint(MARKER_WIDTH / 2, MARKER_HEIGHT - 1) p2 = QPoint(MARKER_WIDTH / 2, MARKER_HEIGHT - 1 - MARKER_PIN_LEN) pen = QPen(Qt.black) pen.setWidth(2) pen.setCosmetic(True) painter.setPen(pen) painter.drawLine(p1, p2) ellipse = QRect(0, 0, MARKER_WIDTH - 1, MARKER_HEIGHT - 1) pen.setWidth(1) painter.setPen(pen) color = QColor(Qt.green) color.setAlpha(127) brush = QBrush(color) painter.setBrush(brush) painter.drawEllipse(ellipse)
def addUnit(self, unit): global mapSize unit.tile = self self.units.append(unit) img = QImage(unit.image).scaledToWidth(self.getImageRect().width()) if unit.owner: rect = img.rect() painter = QPainter(img) painter.setPen(unit.owner.unitColor()) painter.drawEllipse(rect) hpWidth = 20 greenWidth = unit.hp / float(unit.maxHp) * hpWidth painter.fillRect(5, 5, greenWidth, 5, Qt.green) painter.fillRect(5 + greenWidth, 5, hpWidth-greenWidth, 5, Qt.red) painter.end() image = QGraphicsPixmapItem(QPixmap(img), self) if mapSize == 0: mapSize = 1 image.setOffset(self.x + 12/(2*mapSize), self.y + 10/(2*mapSize)) self.unitImages.append(image)
def paintEvent(self, event): painter = QPainter(self) width = self.width() height = self.height() pen = QPen() pen.setBrush(Qt.black) pen.setWidth(2) painter.setPen(pen) painter.setRenderHint(painter.Antialiasing) painter.drawEllipse(0, 0, width, height) painter.drawLine(width - 20, height // 2, width - 1, height // 2) painter.drawLine(0, height // 2, 20, height // 2) painter.drawLine(width // 2, 0, width // 2, 20) painter.drawLine(width // 2, height - 20, width // 2, height - 1) painter.drawText(0, 20, width, height - 20, Qt.AlignHCenter | Qt.AlignTop, "N") painter.drawText(0, 0, width, height - 20, Qt.AlignHCenter | Qt.AlignBottom, "S") painter.drawText(25, 0, width - 25, height, Qt.AlignVCenter | Qt.AlignLeft, "W") painter.drawText(0, 0, width - 25, height, Qt.AlignVCenter | Qt.AlignRight, "E") pen.setWidth(4) pen.setBrush(Qt.blue) painter.setPen(pen) x = (math.cos(-self.heading) * width // 2) + width // 2 y = (math.sin(-self.heading) * height // 2) + height // 2 painter.drawLine(width // 2, height // 2, x, y)
def paintEvent(self, pe): if not self.enlightened.isVisible() or not self.enabled: return g = self.enlightened.mapToGlobal(QPoint(0, 0)) pos = self.parent().mapFromGlobal(g) self.setGeometry( QRect(pos.x(), pos.y(), self.minimumWidth(), self.minimumHeight())) p = QPainter(self) p.setRenderHint(QPainter.Antialiasing) pen = QPen() pen.setColor(QColor(128, 128, 255)) pen.setWidth(2) p.setBrush(QBrush(QColor(225 + math.sin(self.progress) * 30, 225, 255))) self.progress += 0.09 * 2 self.progress2 += 0.109 * 2 p.setPen(pen) s = 10 sz = 7 w = s * 1.1 + sz p.drawEllipse(0 + s * math.sin(self.progress + 0.5) + w, s * math.cos(self.progress) + w, sz, sz) p.drawEllipse(s * 1.1 * math.sin(self.progress2) + w, s * math.cos(self.progress + 0.5) + w, sz - 2, sz - 2) p.drawEllipse( s * math.sin(self.progress + 1) + w, s * 1.1 * math.cos(self.progress2 / 2 + self.progress / 2) + w, sz - 4, sz - 4)
from PySide.QtGui import (QApplication, QGraphicsView, QGraphicsScene, QMainWindow, QPixmap, QPainter) from PySide.QtCore import Qt import sys if __name__ == '__main__': app = QApplication(sys.argv) scene = QGraphicsScene() view = QGraphicsView(scene) view.scale(15, 15) pix = QPixmap(200, 50) pix.fill(Qt.white) p = QPainter(pix) p.setPen(Qt.black) #p.setBrush(Qt.red) for i in range(1, 10): p.drawEllipse(0, 0, i, i) p.translate(i+5, 0) p.end() pixItem = scene.addPixmap(pix) win = QMainWindow() win.setCentralWidget(view) win.resize(700, 200) win.show() sys.exit(app.exec_())