Time for action – Drawing an oscillogram

Let's further extend our widget to become a simple oscillogram renderer. For that, we have to make the widget remember a set of values and draw them as a series of lines.

Let's start by adding a QVector<quint16> member variable that holds a list of unsigned 16-bit integer values. We will also add slots for adding values to the list and for clearing the list, as shown:

class Widget : public QWidget
{
    // ...
public slots:
    void addPoint(unsigned yVal) {
        m_points << qMax(0u, yVal);
        update();
    }
    void clear() {
        m_points.clear();
        update();
    }
protected:
    // ...
    QVector<quint16> m_points;
}; 

Note that each modification of the list invokes a method called update(). This schedules a paint event so that our widget ...

Get Game Programming using Qt 5 Beginner's Guide - Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.