summaryrefslogtreecommitdiffstats
path: root/src/widgets/doc/snippets/graphicsview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/widgets/doc/snippets/graphicsview.cpp')
-rw-r--r--src/widgets/doc/snippets/graphicsview.cpp64
1 files changed, 41 insertions, 23 deletions
diff --git a/src/widgets/doc/snippets/graphicsview.cpp b/src/widgets/doc/snippets/graphicsview.cpp
index 9578f91eec..6262137c90 100644
--- a/src/widgets/doc/snippets/graphicsview.cpp
+++ b/src/widgets/doc/snippets/graphicsview.cpp
@@ -47,53 +47,70 @@
** $QT_END_LICENSE$
**
****************************************************************************/
-
+#include <QGraphicsView>
+#include <QOpenGLWidget>
+#include <QPrinter>
+#include <QPrintDialog>
+#include <QStandardItem>
+#include <QMimeData>
+#include <QDrag>
+#include <QGraphicsSceneMouseEvent>
+
+int main()
+{
//! [0]
QGraphicsScene scene;
QGraphicsRectItem *rect = scene.addRect(QRectF(0, 0, 100, 100));
-QGraphicsItem *item = scene.itemAt(50, 50);
-// item == rect
+QGraphicsItem *item = scene.itemAt(50, 50, QTransform());
//! [0]
+Q_UNUSED(rect);
+Q_UNUSED(item);
+}
+void myPopulateScene(QGraphicsScene *)
+{
+ // Intentionally left empty
+}
+void snippetThatUsesMyPopulateScene()
+{
//! [1]
QGraphicsScene scene;
myPopulateScene(&scene);
-
QGraphicsView view(&scene);
view.show();
//! [1]
+}
-
-//! [2]
-class View : public QGraphicsView
+class CustomItem : public QStandardItem
{
-Q_OBJECT
- ...
-public slots:
- void zoomIn() { scale(1.2, 1.2); }
- void zoomOut() { scale(1 / 1.2, 1 / 1.2); }
- void rotateLeft() { rotate(-10); }
- void rotateRight() { rotate(10); }
- ...
+public:
+ using QStandardItem::QStandardItem;
+
+ int type() const override { return UserType; }
+ void mousePressEvent(QGraphicsSceneMouseEvent *event);
+ QStandardItem *clone() const override { return new CustomItem; }
};
-//! [2]
+void printScene()
+{
//! [3]
QGraphicsScene scene;
+QPrinter printer;
scene.addRect(QRectF(0, 0, 100, 200), QPen(Qt::black), QBrush(Qt::green));
-QPrinter printer;
if (QPrintDialog(&printer).exec() == QDialog::Accepted) {
QPainter painter(&printer);
painter.setRenderHint(QPainter::Antialiasing);
scene.render(&painter);
}
//! [3]
+}
-
+void pixmapScene()
+{
//! [4]
QGraphicsScene scene;
scene.addRect(QRectF(0, 0, 100, 200), QPen(Qt::black), QBrush(Qt::green));
@@ -106,21 +123,21 @@ painter.end();
pixmap.save("scene.png");
//! [4]
-
+}
//! [5]
void CustomItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
QMimeData *data = new QMimeData;
- data->setColor(Qt::green);
-
QDrag *drag = new QDrag(event->widget());
drag->setMimeData(data);
- drag->start();
+ drag->exec();
}
//! [5]
-
+void viewScene()
+{
+QGraphicsScene scene;
//! [6]
QGraphicsView view(&scene);
QOpenGLWidget *gl = new QOpenGLWidget();
@@ -129,3 +146,4 @@ format.setSamples(4);
gl->setFormat(format);
view.setViewport(gl);
//! [6]
+}