2010-09-02 7 views
0

Hell-o tous, Im nouveau à QT et j'ai du mal à dessiner un seul point. J'ai un grand qMainWindow qui appelle finalement un QgraphicsScene et à l'intérieur je dois dessiner un seul point, un petit pixel, c'est tout ce que je veux, je veux utiliser un QPainter mais j'ai du mal à en instancier un. Des idées??QT c + + point de départ qpainter qgraphicscene

Répondre

3

Exemple de code de ce que vous essayez de faire aiderait beaucoup ici.

QPainter utilisation: votre objet Construct QPainter pointant sur un objet de toile, puis appelez painter_obj.drawPoint(x,y);. Notez que le QPainter doit être créé sur la pile, pas sur le tas, afin que le destructeur de l'objet puisse lancer le dessin lui-même.

L'exemple des docs:

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

QGraphicsScene utiliser: Habituellement, vous utilisez un QGraphicsScene pour gérer un grand nombre d'objets flottants autour d'une vue en même temps. C'est exagéré pour un widget de dessin simple. QGraphicsScene n'est pas, iirc, un canevas valide pour un QPainter à peindre. Au lieu de cela, vous créez un QGraphicsItem (ou une sous-classe) du type approprié et remplacez la méthode paint. Lorsque votre QGrpahicsItem est ajouté à la scène, la bibliothèque vous passera un objet QPainter à utiliser pour gérer votre dessin le cas échéant.

+2

Vous n'avez pas besoin de créer le QPainter sur la pile. La façon dont vous l'avez est certainement la façon dont je le ferais aussi, mais l'utilisation de 'new' /' delete' aurait aussi bien fonctionné. – Troubadour

+0

Hé, très utile vous les gars, j'essaie d'utiliser cela pour une infographie graphique et bien que ce n'était pas exactement la solution, il m'a donné des idées, merci –

Questions connexes