pyqt在python里是啥_如何用pyqt在python中创建饼图

挖掘这条线,因为它可能会帮助别人。

@巴里的回答几乎是正确的,但需要一些调整。在

事实上,要使椭圆具有完美的圆形,您需要更改线条:set_angle = angle

^{pr2}$

这样,set_angle(这是我们“饼图块”的起始角)总是画布上绘制的最后一个角度。在

还有,这一行:angle = round(family/total*16*360)

可以这样写(为了可读性):angle = round(float(family*(16*360))/total)

一个有效的例子是(使用Python3和PyQt5):from PyQt5.QtWidgets import QGraphicsScene, QApplication, QGraphicsView, QGraphicsEllipseItem

from PyQt5.Qt import QColor

import sys, random

app = QApplication(sys.argv)

scene = QGraphicsScene()

families = [1,2,3,4,5,6,7,8,9,10]

total = 0

set_angle = 0

count1 = 0

colours = []

total = sum(families)

for count in range(len(families)):

number = []

for count in range(3):

number.append(random.randrange(0, 255))

colours.append(QColor(number[0],number[1],number[2]))

for family in families:

# Max span is 5760, so we have to calculate corresponding span angle

angle = round(float(family*5760)/total)

ellipse = QGraphicsEllipseItem(0,0,400,400)

ellipse.setPos(0,0)

ellipse.setStartAngle(set_angle)

ellipse.setSpanAngle(angle)

ellipse.setBrush(colours[count1])

set_angle += angle

count1 += 1

scene.addItem(ellipse)

view = QGraphicsView(scene)

view.show()

app.exec_()

希望有帮助。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值