def paintEvent(self, QPaintEvent): painter = QPainter() painter.begin(self) painter.setPen(Qt.blue) #绘制弧 #左上角位置,宽度,高度 rect = QRect(0, 10, 100, 100) #alen:1 alen=1/16度 45*16=720 painter.drawArc(rect, 0, 50 * 16) #绘制圆 painter.setPen(Qt.red) painter.drawArc(120, 10, 100, 100, 0, 360 * 16) #绘制带弦的弧 painter.drawChord(10, 120, 100, 100, 12, 130 * 16) #绘制扇形 painter.drawPie(10, 240, 100, 100, 12, 130 * 16) #绘制椭圆 painter.drawEllipse(120, 120, 150, 100) #5边形 point1 = QPoint(140, 380) point2 = QPoint(270, 420) point3 = QPoint(219, 512) point4 = QPoint(290, 588) point5 = QPoint(120, 533) polygon = QPolygon([point1, point2, point3, point4, point5]) painter.drawPolygon(polygon) #绘制图像 image = QImage('./school.jpg') rect = QRect(300, 200, image.width() / 2, image.height() / 2) painter.drawImage(rect, image) # image.save('./school1.png') painter.end()
def paintEvent(self, event): radius = 50 treeSize = QSizeF(2 * radius, 2 * radius) bounds = QRectF((self.width() - treeSize.height()) / 2, (self.height() - treeSize.width()) / 2, treeSize.width(), treeSize.height()) painter = QPainter(self) # draw the shadow painter.setBrush(Qt.black) painter.setPen(Qt.NoPen) painter.setOpacity(0.5) xrad = 95 yrad = self.shadowLength * 20 rect = QRectF(-xrad, -yrad, xrad, yrad) painter.translate(self.width() / 2, self.height() / 2) painter.rotate(self.angle) painter.translate(xrad / 2, yrad / 2) painter.drawChord(rect, 0, 180 * 16) painter.resetTransform() # draw the tree painter.setOpacity(1) self.tree.render(painter, bounds) # draw the compass bounds = QRectF(10, 10, 50, 50) self.compass.render(painter, bounds)
def paintEvent(self, event): rect = QRect(10, 20, 80, 60) path = QPainterPath() path.moveTo(20, 80) path.lineTo(20, 30) path.cubicTo(80, 0, 50, 50, 80, 80) startAngle = 30 * 16 arcLength = 120 * 16 painter = QPainter(self) painter.setPen(self.pen) painter.setBrush(self.brush) if self.antialiased: painter.setRenderHint(QPainter.Antialiasing) for x in range(0, self.width(), 100): for y in range(0, self.height(), 100): painter.save() painter.translate(x, y) if self.transformed: painter.translate(50, 50) painter.rotate(60.0) painter.scale(0.6, 0.9) painter.translate(-50, -50) if self.shape == RenderArea.Line: painter.drawLine(rect.bottomLeft(), rect.topRight()) elif self.shape == RenderArea.Points: painter.drawPoints(RenderArea.points) elif self.shape == RenderArea.Polyline: painter.drawPolyline(RenderArea.points) elif self.shape == RenderArea.Polygon: painter.drawPolygon(RenderArea.points) elif self.shape == RenderArea.Rect: painter.drawRect(rect) elif self.shape == RenderArea.RoundedRect: painter.drawRoundedRect(rect, 25, 25, Qt.RelativeSize) elif self.shape == RenderArea.Ellipse: painter.drawEllipse(rect) elif self.shape == RenderArea.Arc: painter.drawArc(rect, startAngle, arcLength) elif self.shape == RenderArea.Chord: painter.drawChord(rect, startAngle, arcLength) elif self.shape == RenderArea.Pie: painter.drawPie(rect, startAngle, arcLength) elif self.shape == RenderArea.Path: painter.drawPath(path) elif self.shape == RenderArea.Text: painter.drawText(rect, Qt.AlignCenter, "PyQt by\nRiverbank Computing") elif self.shape == RenderArea.Pixmap: painter.drawPixmap(10, 10, self.pixmap) painter.restore() painter.setPen(self.palette().dark().color()) painter.setBrush(Qt.NoBrush) painter.drawRect(QRect(0, 0, self.width() - 1, self.height() - 1))
def paintEvent(self, event): radius = 50 treeSize = QSizeF(2 * radius, 2 * radius) bounds = QRectF( (self.width() - treeSize.height()) / 2, (self.height() - treeSize.width()) / 2, treeSize.width(), treeSize.height()) painter = QPainter(self) # draw the shadow painter.setBrush(Qt.black) painter.setPen(Qt.NoPen) painter.setOpacity(0.5) xrad = 95 yrad = self.shadowLength * 20 rect = QRectF(-xrad, -yrad, xrad, yrad) painter.translate(self.width() / 2, self.height() / 2) painter.rotate(self.angle) painter.translate(xrad/2, yrad/2) painter.drawChord(rect, 0, 180*16) painter.resetTransform() # draw the tree painter.setOpacity(1) self.tree.render(painter, bounds) # draw the compass bounds = QRectF( 10, 10, 50, 50) self.compass.render(painter, bounds)
def paintEvent(self, event): painter = QPainter() painter.begin(self) painter.setPen(Qt.blue) # 绘制弧:参数表示 x、y坐标和宽高 rect = QRect(0, 10, 200, 200) # 单位alen:等于1/16度 painter.drawArc(rect, 0, 50 * 16) # 通过弧长绘制圆 painter.setPen(Qt.red) painter.drawArc(220, 10, 100, 100, 0, 360 * 16) # 绘制带弦的弧 painter.drawChord(10, 120, 100, 100, 13, 130 * 16) # 绘制扇形 painter.drawPie(10, 240, 100, 100, 13, 130 * 16) # 绘制五边形 point1 = QPoint(140, 380) point2 = QPoint(270, 420) point3 = QPoint(290, 512) point4 = QPoint(290, 588) point5 = QPoint(200, 533) painter.drawPolygon(QPolygon([point1, point2, point3, point4, point5])) # 绘制图形 image = QImage('./images/color.png') painter.drawImage(QRect(400, 400, image.width(), image.height()), image) painter.end()
def uiRecordPaintEventRecord(evt, iconSize=24, offsetX=32): midpoint = self.uiRecord.geometry().size()/2 - QSize(0, self.uiRecord.touchMargins()['bottom']/2) p = QPainter(self.uiRecord) p.setPen(QPen(QColor('#000000'))) p.setBrush(QBrush(QColor('#f20000'))) p.setRenderHint(QPainter.Antialiasing, True) p.drawChord( #xy/wh midpoint.width()-iconSize/2-offsetX, midpoint.height()-iconSize/2, iconSize, iconSize, 0, 16*360, #start, end angle )
def paintEvent(self, QPaintEvent): painter = QPainter() painter.begin(self) painter.setPen(QColor(self.color)) painter.setBrush(QColor(self.color)) painter.setRenderHint(QPainter.Antialiasing) #painter.drawRoundedRect(0, 5, self.geometry().width() - 5, self.geometry().height() - 7, 3, 3) painter.drawChord(QRect(20, self.height-50, 45, 45), 180 * 16, 180 * 16) geom = self.geometry() painter.drawRoundedRect(QRect(0, 0, geom.width(), geom.height() - 15), 6*self.scale, 6*self.scale) painter.setBrush(QColor("white")) painter.setPen(QColor("white")) painter.end()
def paintEvent(self,event): #paintEvent 当窗口变化是直接调用,不需要调用函数 painter=QPainter() painter.begin(self) #设置画笔和字体 painter.setPen(QColor(2,1,3)) painter.setFont(QFont('SimSun',12)) '''绘制圆弧''' #(1)确定绘制区域 rect=QRect(0,0,100,100) #前两个值为左上角的坐标,后两个值为宽度和高度 #(2)在区域绘制图形 painter.drawArc(rect,0,50*16) #后面两个参数为为起始的角度,和结束的角度,为什么乘16,因为单位为alen,一度=16alen,也就是50度为50*16 '''绘制圆''' rect=QRect(100,0,50,50) painter.setPen(Qt.red) painter.drawArc(rect,0,360*16) '''绘制带弦的弧''' rect = QRect(200, 0, 50, 50) painter.drawChord(rect,1,90*16) '''绘制扇形''' rect = QRect(0,50, 50, 50) painter.drawPie(rect,12,76*16) '''绘制椭圆''' painter.drawEllipse(0,100,60,50) #前两个参数为起始坐标,后两个为宽和高,当后两个参数一样为圆 '''绘制多边形''' #绘制一个正方形 p1=QPoint(100,100) p2=QPoint(130,100) p3=QPoint(130,130) p4=QPoint(100,130) polygon=QPolygon([p1,p2,p3,p4]) painter.drawPolygon(polygon) '''绘制一个图形''' #(1)读取图像 img=QImage('python.png') #(2)进行绘制,对图片的大小压说为原来的二分之一 rect=QRect(100,100,img.width()/3,img.height()/3) painter.drawImage(rect,img) painter.end()
def paintEvent(self, QPaintEvent): p = QPainter(self) p.setPen(self.pen) p.setBrush(self.brush) rect = QRect(50, 100, 300, 200) points = [ QPoint(150, 100), QPoint(300, 150), QPoint(350, 250), QPoint(100, 300) ] startAngle = 30 * 16 spanAngle = 120 * 16 path = QPainterPath() path.addRect(150, 150, 100, 100) path.moveTo(100, 100) path.cubicTo(300, 100, 200, 200, 300, 300) path.cubicTo(100, 300, 200, 200, 100, 100) if self.shape == "Line": p.drawLine(rect.topLeft(), rect.bottomRight()) elif self.shape == "Rectangle": p.drawRect(rect) elif self.shape == 'Rounded Rectangle': p.drawRoundedRect(rect, 25, 25, Qt.RelativeSize) elif self.shape == "Ellipse": p.drawEllipse(rect) elif self.shape == "Polygon": p.drawPolygon(QPolygon(points), Qt.WindingFill) elif self.shape == "Polyline": p.drawPolyline(QPolygon(points)) elif self.shape == "Points": p.drawPoints(QPolygon(points)) elif self.shape == "Pie": p.drawPie(rect, startAngle, spanAngle) elif self.shape == "Arc": p.drawArc(rect, startAngle, spanAngle) elif self.shape == "Chord": p.drawChord(rect, startAngle, spanAngle) elif self.shape == "Path": p.drawPath(path) elif self.shape == "Text": p.drawText(rect, Qt.AlignCenter, "Hello Qt!") elif self.shape == "Pixmap": p.drawPixmap(150, 150, QPixmap("images/qt-logo.png"))
def paintEvent(self, QPaintEvent): painter = QPainter() painter.begin(self) painter.setPen(QColor(self.color)) painter.setBrush(QColor(self.color)) painter.setFont(QFont("Comic Sans MS", 15)) painter.setRenderHint(QPainter.Antialiasing) painter.drawRoundedRect(QRect(0, 30*self.scale, self.geometry().width(), self.height-16-29*self.scale), 6*self.scale, 6*self.scale) painter.drawChord(QRect(0, 5, self.width, 60*self.scale), 0 * 16, 180 * 16) geom = self.geometry() painter.drawChord(QRect(20, self.height-51, 45, 45), 180 * 16, 180 * 16) #painter.drawRoundedRect(QRect(0, 20, geom.width(), geom.height() - 15), 3, 3) painter.setBrush(QColor("white")) painter.setPen(QColor("white")) # painter.drawChord(QRect(20, 60, 45, 45), 180 * 16, 180 * 16) painter.drawText(15, 55*self.scale, self.content) painter.end()
def paintEvent(self, QPaintEvent): painter = QPainter() painter.begin(self) # 绘制弧 painter.setPen(Qt.red) rect = QRect(0, 0, 100, 100) # 初始化一块矩形区域,前面两个是矩形所在的左上角坐标点,后面两个是矩形的长和宽 # 绘图使用的单位是alen:1个alen等于1/16度 painter.drawArc(rect, 0, 66 * 16) # rect是弧形所在的区域,0是弧形的起始角度,60*16是弧形的终止角度 # 使用绘制弧形函数来绘制圆 painter.setPen(Qt.blue) painter.drawArc(200,0, 100,100, 0, 360 * 16) # rect是弧形所在的区域,0是弧形的起始角度,60*16是弧形的终止角度 # 绘制带弦的弧 painter.setPen(Qt.yellow) painter.drawChord(300, 0, 100, 100, 0, 145 * 16) # 绘制扇形 painter.setPen(Qt.cyan) painter.drawPie(0, 100, 100, 100, 0, 200 * 16) # 绘制椭圆 painter.setPen(Qt.red) painter.drawEllipse(100, 100, 100, 150) # 绘制多边形:几变形就要指定几个点 p1 = QPoint(10, 200) #点的坐标 p2 = QPoint(30, 200) #点的坐标 p3 = QPoint(200, 300) #点的坐标 p4 = QPoint(300, 300) #点的坐标 p5 = QPoint(100, 400) #点的坐标 po = QPolygon([p1, p2, p3, p4, p5]) painter.drawPolygon(po) # 绘制图像 image = QImage("./24.jpg") # 加载图像 rect1 = QRect(300, 300, image.width()/3, image.height()/3) painter.drawImage(rect1, image) painter.end()
def paintEvent(self, event): painter = QPainter(self) painter.setPen(QPen(Qt.black, 5, Qt.SolidLine)) # painter.setBrush(QBrush(Qt.red, Qt.SolidPattern)) painter.setBrush(QBrush(Qt.red, Qt.VerPattern)) points = QPolygon([ QPoint(10, 10), QPoint(10, 100), QPoint(100, 10), QPoint(80, 100) ]) painter.drawPolygon(points) painter.drawEllipse(150, 10, 50, 25) painter.drawRect(150, 70, 150, 100) painter.drawArc(150, 70, 150, 100, 0, 1400) painter.drawChord(150, 150, 0, 0, 50, 10)
def paintEvent(self, event): painter = QPainter() painter.begin(self) painter.setPen(Qt.blue) #绘制弧 rect = QRect(0, 10, 100, 100) # alen: 1个alen等于1/16度 45 * 16 painter.drawArc(rect, 0, 90 * 16) painter.setPen(Qt.red) painter.drawArc(120, 10, 100, 100, 0, 360 * 16) # 绘制带弦的圆 painter.drawChord(10, 120, 100, 100, 12, 130 * 16) # 绘制扇形 painter.drawPie(10, 240, 100, 100, 12, 130 * 16) # 绘制椭圆 painter.drawEllipse(120, 120, 150, 100) # 绘制5边形 point1 = QPoint(140, 380) point2 = QPoint(270, 420) point3 = QPoint(290, 512) point4 = QPoint(290, 588) point5 = QPoint(200, 533) polygon = QPolygon([point1, point2, point3, point4, point5]) painter.drawPolygon(polygon) # 绘制图像 image = QImage('src\images\QQ截图20200219191139.jpg') rect = QRect(10, 400, image.width() / 3, image.height() / 3) painter.drawImage(rect, image) painter.end()
def paintEvent(self, event): painter = QPainter() painter.begin(self) painter.setRenderHint(QPainter.Antialiasing) painter.setPen(Qt.NoPen) painter.setBrush(QBrush(QColor("#888888"))) path1 = QPainterPath() path1.moveTo(5, 5) path1.cubicTo(40, 5, 50, 50, 99, 99) path1.cubicTo(5, 99, 50, 50, 5, 5) painter.drawPath(path1) painter.drawPie(130, 20, 90, 60, 30 * 16, 120 * 16) painter.drawChord(240, 30, 90, 60, 0, 16 * 180) painter.drawRoundedRect(20, 120, 80, 50, 10, 10) polygon = QPolygon() polygon.append(QPoint(130, 140)) polygon.append(QPoint(180, 170)) polygon.append(QPoint(180, 140)) polygon.append(QPoint(220, 110)) polygon.append(QPoint(140, 100)) painter.drawPolygon(polygon) painter.drawRect(250, 110, 60, 60) baseline = QPointF(20, 250) font = QFont("Georgia", 55) path2 = QPainterPath() path2.addText(baseline, font, "Q") painter.drawPath(path2) painter.drawEllipse(140, 200, 60, 60) painter.drawEllipse(240, 200, 90, 60)
def paintEvent(self, event): painter = QPainter(self) painter.begin(self) painter.setPen(Qt.blue) painter.setFont(QFont('SimSun', 50)) # 绘制弧形 rect = QRect(0, 10, 800, 800) # 位置和大小 painter.drawArc(rect, 180 * 16, 30 * 16) # rect 区域,0起始位置,50*16表示50度 1度=16a # 绘制带弦的弧 painter.drawChord(rect, 90 * 16, 30 * 16) # 绘制扇形 painter.drawPie(10, 240, 100, 100, 12, 120 * 16) # 绘制椭圆 painter.drawEllipse(50, 50, 50, 100) # 绘制多边形(多边形对象) point1 = QPoint(130, 120) point2 = QPoint(130, 150) point3 = QPoint(220, 180) point4 = QPoint(220, 170) point5 = QPoint(200, 150) # 多边形对象 polygon = QPolygon([point1, point2, point3, point4, point5]) painter.drawPolygon(polygon) # 绘制图片 image = QImage(QPixmap('../images/ajax-loading.gif')) rect = QRect(100, 100, image.width(), image.height()) painter.drawImage(rect, image) painter.end()
player.changeSquaresize(self.squareSize) def paintEvent(self, event): """Brush event.""" qp = QPainter() blackPen = QPen(QBrush(Qt.black),1) qp.begin(self) qp.setPen(blackPen) if self.begin_game: # If player has control of a square, then draw that players color. Either way, draw the grid. for row in self.board: for column in row: if column[1]: qp.setBrush(column[1]) qp.drawChord(column[0],0,5760) qp.setBrush(0) qp.drawRect(column[0]) i=0 #Write out the scores of each plaayers for player in self.playerList: if i <2: qp.drawText(200,(yAxisSpace/4) +20*i,player.get_name() +" "+str(player.get_score())) i+=1 else: qp.drawText(500,(yAxisSpace/4)+20*(i-2),player.get_name() +" "+str(player.get_score())) i+=1 #Write out who's turn it is, and their multiplier for player in self.playerList: if player.get_turn(): qp.drawText(5,yAxisSpace/4,player.get_name()+ " Go:")