Widgets inside Graphics View

In order to show a neat feature of Graphics View, have a look at the following code snippet, which adds a widget to the scene:

QSpinBox *box = new QSpinBox;
QGraphicsProxyWidget *proxyItem = new QGraphicsProxyWidget;
proxyItem->setWidget(box);
QGraphicsScene scene;
scene.addItem(proxyItem);
proxyItem->setScale(2);
proxyItem->setRotation(45);

First we create a QSpinBox and a QGraphicsProxyWidget element, which act as containers for widgets and indirectly inherit QGraphicsItem. Then we add the spin box to the the proxy widget by calling addWidget(). The ownership of the spin box isn't transferred, but when QGraphicsProxyWidget gets deleted, it calls delete on all assigned widgets. We thus do not have to worry about that ...

Get Game Programming Using Qt now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.