1

如何在这样的图表上显示Qt Pie 图表中的百分比?

4

1 回答 1

5

要执行此任务,您必须启用使标签可见并将位置放置为 LabelInsideHorizo​​ntal,在以下代码中显示了解决方案。

series->setLabelsVisible();
series->setLabelsPosition(QPieSlice::LabelInsideHorizontal);

for(auto slice : series->slices())
    slice->setLabel(QString("%1%").arg(100*slice->percentage(), 0, 'f', 1));

在此处输入图像描述

PyQt5:

import sys
from PyQt5 import QtCore, QtGui, QtWidgets, QtChart

if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)

    series = QtChart.QPieSeries()
    series.append("Jane", 1)
    series.append("Joe", 2)
    series.append("Andy", 3)
    series.append("Barbara", 4)
    series.append("Axel", 5)

    chart = QtChart.QChart()
    chart.addSeries(series)
    chart.setTitle("Simple piechart example")
    chart.legend().hide()

    series.setLabelsVisible()
    series.setLabelsPosition(QtChart.QPieSlice.LabelInsideHorizontal)

    for slice in series.slices():
        slice.setLabel("{:.1f}%".format(100 * slice.percentage()))

    chartView = QtChart.QChartView(chart)
    chartView.setRenderHint(QtGui.QPainter.Antialiasing)

    window = QtWidgets.QMainWindow()
    window.setCentralWidget(chartView)
    window.resize(640, 480)
    window.show()

    sys.exit(app.exec())
于 2017-06-13T04:46:37.640 回答