Ну, строго говоря, совет неверный.
В чем проблема: вы создали массив из 721*721 item-ов, но помните, что сцена их не просто рисует, но проиндексировала. И каждый чих она пытается понять как элементы взаимодействуют и т.п.
Итак, во-первых это не разные объекты, а один и нам следует его выдавать одним куском
Этап номер 1.
Вычисляем массив отображаемых точек и кэшируем его и рисуем скопом:
C++ (Qt)
void Plot::setData(QVector<QPointF> data)
{
m_data = data;
}
void Plot::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
painter->drawPoints(m_data.data(), m_data.size());
}
Этап 2 Если скорость отрисовки неустраивает допиливаем:
C++ (Qt)
graphicsView.setViewPort(new QGlWidegt());
Этап 3. Если снова не устраивает, то переделываем:
C++ (Qt)
void Plot::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
painter->beginNativePainting();
//draw points by OpenGL
painter->endNativePaintin();
}