在 Qt 饼图中显示百分比?

Show percentage in Qt Pie Charts?

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

要完成此任务,您必须启用使标签可见并将位置放置为 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())