setpixel QGraphicsScene в Qt - PullRequest
       15

setpixel QGraphicsScene в Qt

0 голосов
/ 04 февраля 2012

Просто нарисовать линию или эллипс просто, используя scene.addellipse () и т. Д.

QGraphicsScene scene(0,0,800,600);
QGraphicsView view(&scene);
scene.addText("Hello, world!");
QPen pen(Qt::green);
scene.addLine(0,0,200,200,pen);
scene.addEllipse(400,300,100,100,pen);
view.show();

что мне теперь делать, чтобы установить цвет пикселей? Могу ли я использовать виджет, как qimage? кстати производительность для меня проблема. спасибо

1 Ответ

1 голос
/ 04 февраля 2012

Я думаю, что выполнение пиксельных манипуляций на QImage сильно замедлит работу вашего приложения.Хорошей альтернативой является подкласс QGraphicsItem в новом классе, например, QGraphicsPixelItem, и реализация функции paint следующим образом:

// code untested

void QGraphicsPixelItem::paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = 0)
{
    painter->save();

    foreach(const QPoint& p, pointList) {            
        // set your pen color etc.
        painter->drawPoint(p);
    }

    painter->restore();
}

где pointList - это какой-то контейнер, которыйиспользуйте для хранения положения пикселей, которые вы хотите нарисовать.

...