2010-09-02 229 views
0

地狱 - 所有,我新来的QT和我无法绘制一个单一的点。QT C++绘制点qpainter qgraphicscene

我有一个很大的qMainWindow,最终调用一个QgraphicsScene,在它内部我需要绘制一个点,一个小像素,这就是我想要的,我想用QPainter,但是Im在实例化时遇到了问题。有任何想法吗??

回答

3

你想要做的事情的示例代码在这里很有帮助。

QPainter的使用: 构建在画布对象指向你QPainter的对象,然后调用painter_obj.drawPoint(x,y);。请注意,QPainter需要在堆栈上创建,而不是在堆上创建,以便对象的析构函数可以启动实际的绘图。

该示例从文档:

void SimpleExampleWidget::paintEvent(QPaintEvent *) 
{ 
    QPainter painter(this); 
    painter.setPen(Qt::blue); 
    painter.setFont(QFont("Arial", 30)); 
    painter.drawText(rect(), Qt::AlignCenter, "Qt"); 
} 

QGraphicsScene使用: 通常情况下,你使用QGraphicsScene来管理大量漂浮的视图,同时对象。这对于一个简单的绘图小部件来说是过度的。 QGraphicsScene不是iirc,它是QPainter绘制的有效画布。

相反,您将创建适当类型的QGraphicsItem(或子类),并覆盖paint方法。当您的QGrpahicsItem被添加到场景中时,库会传递给您一个QPainter对象以在适当时处理您的绘图。

+2

您不需要在堆栈上创建QPainter。你拥有它的方式当然也是我的方式,但使用'new' /'delete'也可以。 – Troubadour 2010-09-02 23:33:59

+0

嘿,非常有用ü家伙,我试图用这个计算机图形排序,虽然这不完全是它给了我想法的解决方案,谢谢 – 2010-09-05 02:18:55