0

只需使用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 这样的小部件吗?顺便说一句,性能对我来说是个问题。谢谢

4

1 回答 1

1

我认为在 a 上执行像素操作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用于存储要绘制的像素位置的某种容器在哪里。

于 2012-02-04T09:44:47.193 回答