Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-112919

PointsConfiguration not cleared even when there are no points in QScatterSeries

    XMLWordPrintable

Details

    • 2de0293df (dev), 53e596ce6 (6.5), b781f0515 (tqtc/lts-6.2)

    Description

      PointsConfirguration is not cleared in QScatterSeries even when there are no points in it.
      This prevents pointsConfigurationChanged signal from being emitted when it should.

      Steps to reproduce the bug -
      Create a scatter series with 3 points -> Call size by method with arguments ([1,2,3], 10, 20) -> Notice that size of points changes -> Call clear method on the scatter series -> Again append 3 points to the scatter series -> Call the sizeBy method again with exactly same arguments -> Notice that sizes of points do not change this time.

      Code example -

      from PySide6.QtCharts import QChart, QChartView, QScatterSeries, QValueAxis, QXYSeries
      from PySide6.QtWidgets import QMainWindow
      from PySide6.QtCore import Qt

      main_window = QMainWindow()
      main_window.resize(500,500)
      chart = QChart()
      x_axis = QValueAxis()
      x_axis.setRange(0,10)
      chart.addAxis(x_axis, Qt.AlignBottom)
      y_axis = QValueAxis()
      y_axis.setRange(0, 10)
      chart.addAxis(y_axis, Qt.AlignLeft)

      chart_view = QChartView(chart, main_window)
      main_window.setCentralWidget(chart_view)
      scatter_series = QScatterSeries()
      chart.addSeries(scatter_series)
      scatter_series.attachAxis(x_axis)
      scatter_series.attachAxis(y_axis)
      main_window.show()

      scatter_series.append(2.5, 2.5)
      scatter_series.append(5, 5)
      scatter_series.append(7.5, 7.5)
      scatter_series.sizeBy([1, 2, 3], 10, 20)

      (Notice size configuration is applied on points.)
      Now, execute

      scatter_series.clear()
      scatter_series.append(2.5, 2.5)
      scatter_series.append(5, 5)
      scatter_series.append(7.5, 7.5)
      scatter_series.sizeBy([1, 2, 3], 10, 20)

      Notice that size configuration is not visibly applied to points this time.
      Also,

      print(len(scatter_series.pointsConfiguration())

      can be used to verify that it prints 3 at all times (even after calling scatter_series.clear())

      Attachments

        For Gerrit Dashboard: QTBUG-112919
        # Subject Branch Project Status CR V

        Activity

          People

            ivan.solovev Ivan Solovev
            viniyogita viniyogita
            Votes:
            1 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes