[Python] How to add text to a series point in a pyside6 Qchart? I'm not sure if its a bug but...

Discussão em 'Python' iniciado por Stack, Maio 6, 2025.

  1. Stack

    Stack Membro Participativo

    How to add text to a series point in a pyside6 Qchart? I'm not sure if its a bug but I can't find a working example.

    I would also like to add a box with some text, similar to a legend, if possible.

    Using pyside6 6.7.2

    import sys

    from PySide6.QtCharts import *
    from PySide6.QtWidgets import *
    from PySide6.QtCore import *
    from PySide6.QtGui import *


    app = QApplication(sys.argv)

    # Create a series with 3 points
    series = QLineSeries()
    series.append(0, 1)
    point=QPointF(1, 3)
    series.append(point) # Middle point
    series.append(2, 2)

    # Create a chart and add the series to it
    chart = QChart()#
    axis_x = QValueAxis()
    axis_y = QValueAxis()
    chart.addAxis(axis_x, Qt.AlignBottom)
    chart.addAxis(axis_y, Qt.AlignLeft)
    chart.addSeries(series)
    series.attachAxis(axis_x)
    series.attachAxis(axis_y)

    # chart.createDefaultAxes()

    # Add text to the middle point using QGraphicsTextItem
    position_in_chart = series.chart().mapToPosition(point, series)
    text_item = QGraphicsTextItem("thing")
    text_item.setPos(position_in_chart)

    # Add extra info next to the legend
    legend = chart.legend()
    marker = legend.markers(series)[0]
    marker.setLabel("Extra Info: PLACEHOLDER")

    # Create a chart view and set it as the central widget
    chartView = QChartView(chart)
    chartView.setRenderHint(QPainter.Antialiasing)
    # chart.scene().addItem(text_item)
    chartView.scene().addItem(text_item)
    window = QMainWindow()
    window.setCentralWidget(chartView)
    window.resize(400, 300)
    window.show()

    sys.exit(app.exec())

    Continue reading...

Compartilhe esta Página