Qt Charts zoom signal is missing



  • Hi,

    I am working on a signal viewer powered by Qt Charts. I manipulate dozen of curves with 65 Millions points and OpenGL is not sufficent.
    So I have to downsample, I have written an algorithm that plot only ymin & ymax of a high density area thus plotting only my window pixel width.

    Problem comes when I zoom, I am able to zoom through mouse and keyboard but I cannot find a correct signal where I can plug a slot for updating my downsampling.

    An idea is to do it while grabbing keyboard and mouse event but it is not clean as it will lag my UI.

    Any ideas ?

    Thanks!!!



  • As I found the solution, I will respond to myself.

    I have a QChart inside a QChartView. A zoom is a X axis range change, but QChart has a QAbstractAxis with no signal refering to X Axis range change.

    The trick was to static_cast<QValueAxis *>(chart()->axisX()), then we have access to &QValueAxis::rangeChanged signal which is emitted for each zoomIn or zoomOut. It gives you the new visible range from which I determine a new width to compute my downsample.

    Solved!


  • Lifetime Qt Champion

    Hi and welcome to devnet,

    You should use qobject_cast when casting QObject based classes.



  • I applied your suggestion. Thanks

    What it is the difference btw ? qobject_cast is the equivalent of static_cast for QObject ?


  • Lifetime Qt Champion

    More or less. static_cast doesn't do any check. With it you basically just tell the computer what the object should be.

    qobject_cast verifies that the object you are casting is of the right type or at least one subclass of the type you pass as template parameter.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.