#include #include #include #include #include #include class RectItem : public QGraphicsRectItem { public: RectItem(const QRectF& rect) : QGraphicsRectItem(rect) {} QPainterPath shape() const; void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { painter->setBrush(QBrush(QColor(0, 255, 0, 50))); painter->drawRect(rect()); } }; QPainterPath RectItem::shape() const { QPainterPath path; path.addRect(rect()); return path; } int main(int argc, char *argv[]) { // Initialization QApplication app(argc, argv); QGraphicsScene scene; QGraphicsView view(&scene); view.showFullScreen(); //QGraphicsRectItem rectItem(QRectF(0,0,100,100)); RectItem rectItem(QRectF(0,0,100,100)); scene.addItem(&rectItem); QGraphicsTextItem textItem(QString("This is too long to fit the rect area"), &rectItem); textItem.setPos(0,150); rectItem.setFlags(QGraphicsItem::ItemClipsChildrenToShape); // Enter event loop return app.exec(); }