使用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这样的小部件吗?顺便说一下,表演对我来说是一个问题。谢谢
答案 0 :(得分:1)
我认为在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
是某种容器,用于存储您想要绘制的像素的位置。