1 使用QPainterPath 和 QPainterPath::arcTo函数
void QPainterPath::arcTo(const QRectF & rectangle, qreal startAngle, qreal sweepLength)
创建一个弧形,占据了指定的 rectangle,以指定 startAngle 角度(0-360) 开始旋转 sweepLength 度
其中sweepLength为正数时是以逆时针旋转,为负数时是以顺时针进行旋转
class Example(QFrame):
def __init__(self):
super().__init__()
self.setFixedSize(600,800)
self.arcRadius=45
self.startPos=(100,100)
def paintEvent(self,event):
painter = QPainter(self)
painter.setBrush(Qt.green)
painter.setRenderHint(QPainter.Antialiasing)
#绘制第一段
path1 = QPainterPath()
path1.moveTo(*self.startPos)
path1.arcTo(QRectF(self.startPos[0],self.startPos[1]-self.arcRadius,self.arcRadius*2,self.arcRadius*2),180,-90)
print(path1.currentPosition())
path1.lineTo(145+100,55)
path1.lineTo(self.startPos[0],self.startPos[1])
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
ex.show()
app.exit(app.exec_())

该博客介绍了一个使用Python PyQt5的QPainterPath和arcTo函数创建弧形路径的例子。示例中展示了如何从指定起点开始,以逆时针方向绘制一段弧线,并连接到终点,同时提供了详细的代码实现。
1098

被折叠的 条评论
为什么被折叠?



