2010-09-02 58 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