4#include <QtPrintSupport/qtprintsupportglobal.h>
6#include <QtPrintSupport/qabstractprintdialog.h>
8#if QT_CONFIG(printdialog)
10#include <QStandardItem>
11#include <QtCore/qmimedata.h>
12#include <QtGui/qdrag.h>
13#include <QtOpenGLWidgets/qopenglwidget.h>
14#include <QtPrintSupport/qprintdialog.h>
15#include <QtPrintSupport/qprinter.h>
16#include <QtWidgets/QGraphicsSceneMouseEvent>
17#include <QtWidgets/qdialog.h>
18#include <QtWidgets/qgraphicsview.h>
20void graphicsview_snippet_main()
24 QGraphicsRectItem *rect = scene.addRect(QRectF(0, 0, 100, 100));
26 QGraphicsItem *item = scene.itemAt(50, 50, QTransform());
32void myPopulateScene(QGraphicsScene *)
37void snippetThatUsesMyPopulateScene()
41 myPopulateScene(&scene);
42 QGraphicsView view(&scene);
47class CustomItem :
public QStandardItem
50 using QStandardItem::QStandardItem;
52 int type()
const override {
return UserType; }
53 void mousePressEvent(QGraphicsSceneMouseEvent *event);
54 QStandardItem *clone()
const override {
return new CustomItem; }
63 scene.addRect(QRectF(0, 0, 100, 200), QPen(Qt::black), QBrush(Qt::green));
65 if (QPrintDialog(&printer).exec() == QDialog::Accepted) {
66 QPainter painter(&printer);
67 painter.setRenderHint(QPainter::Antialiasing);
68 scene.render(&painter);
77 scene.addRect(QRectF(0, 0, 100, 200), QPen(Qt::black), QBrush(Qt::green));
80 QPainter painter(&pixmap);
81 painter.setRenderHint(QPainter::Antialiasing);
82 scene.render(&painter);
85 pixmap.save(
"scene.png");
90void CustomItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
92 QMimeData *data =
new QMimeData;
93 QDrag *drag =
new QDrag(event->widget());
94 drag->setMimeData(data);
101 QGraphicsScene scene;
103 QGraphicsView view(&scene);
104 QOpenGLWidget *gl =
new QOpenGLWidget();
105 QSurfaceFormat format;
106 format.setSamples(4);
107 gl->setFormat(format);
108 view.setViewport(gl);