1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| void MainWindow::displayResult()
{
//Ce qui ne marche pas, le remove de l'ellipse
scene2.removeItem(ellipse);
// item2 correspond à une image qui s'ajoute bien avec addItem plus bas, et qui se supprime bien avant
scene2.removeItem(&item2);
scene2.addItem(&item2);
scene2.setSceneRect(scene2.itemsBoundingRect());
// Reading res.dat file and plot the contour
int m;
std::ifstream ifs2("final_contour.dat");
ifs2 >> m;
std::cout << m;
while (ifs2 >> px)
{
ifs2 >> py;
points.append(QPointF(py,px));
}
foreach(point, points)
//Passant par un QGraphicsEllipseItem en header définit ainsi: QGraphicsEllipseItem *ellipse;
ellipse = scene2.addEllipse(QRectF(point.y(), width-point.x(),1,1),QPen(Qt::red));
// Ajout bête et simple de l'ellipse, mais du coup il n'est pas possible de détruire l'item vu qu'il n'est stocké dans aucune variable de type QGraphicsItem
//scene2.addEllipse(point.y(), width-point.x(), 1, 1, QPen(Qt::red));
// Moyen de définir l'ellipse en déclarant dans le header: QGraphicsEllipseItem ellipse;
// ellipse.setRect(0,0,1,1);
// ellipse.setPos(point.y(), width-point.x());
// scene2.addItem(&ellipse);
// Saving the final contour into a picture
QImage pixmap(width, width, QImage::Format_ARGB32_Premultiplied);
painter.begin(&pixmap);
painter.setRenderHint(QPainter::Antialiasing, false);
scene2.render(&painter);
painter.end();
pixmap.save("finalcontour.bmp", "BMP");
} |
Partager