#include #include "QTeXEngine.h" class PolygonItem : public QGraphicsItem { virtual QRectF boundingRect() const { return QRectF(-20, -20, 40, 40); } virtual void paint (QPainter* painter, const QStyleOptionGraphicsItem*, QWidget*) { painter->setBrush(Qt::blue); painter->setPen(Qt::NoPen); painter->drawConvexPolygon(QVector() << QPointF(-20, -20) << QPointF(20, 0) << QPointF(-20, 20)); } }; class GraphicsView : public QGraphicsView { Q_OBJECT public: GraphicsView(){ QGraphicsScene* s = new QGraphicsScene(this); setScene(s); setRenderHint(QPainter::Antialiasing); translate(0.5, 0.5); QGraphicsLineItem* l = new QGraphicsLineItem(10,10, 70, 100); QPen lp; lp.setDashPattern(QVector() << 1.0 << 4.0); l->setPen(lp); s->addItem(l); PolygonItem* p = new PolygonItem(); p->setPos(60,20); s->addItem(p); QPixmap pm1("machines.tif"); QGraphicsPixmapItem* px1 = new QGraphicsPixmapItem(pm1); px1->setPos(70, 30); s->addItem(px1); QPixmap pm2("thermal.tif"); QGraphicsPixmapItem* px2 = new QGraphicsPixmapItem(pm2); px2->setPos(140, 30); s->addItem(px2); } }; #include "test.moc" int main(int argc, char **argv) { QApplication app(argc, argv); GraphicsView view; view.show(); QTeXPaintDevice tex("test.tex", view.scene()->sceneRect().size().toSize()); tex.setOutputMode(QTeXPaintDevice::Pgf); tex.setDocumentMode(); QPainter painter(&tex); view.scene()->render(&painter); painter.end(); return app.exec(); }