#include "mainwindow.h" #include "ui_mainwindow.h" #include #include #include #include #include MainWindow * w; class MyItem : public QGraphicsRectItem { protected : virtual void wheelEvent ( QGraphicsSceneWheelEvent * event ) { setBrush (Qt::green); } virtual void mousePressEvent ( QGraphicsSceneMouseEvent * event ) { QDrag * d = new QDrag (w); QMimeData * m = new QMimeData(); m->setText("hello"); d->setMimeData(m); d->exec(); } /* virtual void dragEnterEvent ( QGraphicsSceneDragDropEvent * event ) { event->accept(); } */ virtual void dropEvent ( QGraphicsSceneDragDropEvent * event ) { setBrush (QColor("orange")); } }; MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); w = this; QGraphicsScene * scene = new QGraphicsScene; scene->setSceneRect(0, 0, 200, 200); ui->graphicsView->setScene (scene); QGraphicsRectItem * item = new MyItem; item->setPen (QColor ("red")); item->setBrush (QColor ("yellow")); item->setVisible(true); item->setRect(1, 1, 100, 200); item->setOpacity(0.5); item->setFlag(QGraphicsItem::ItemIsMovable); scene->addText("Hello, world!"); scene->addRect(1,1, 10, 10, QColor ("red"), QColor ("blue")); scene->addItem(item); QGraphicsRectItem * item2 = new MyItem; item2->setPen (QColor ("red")); item2->setBrush (QColor ("blue")); item2->setRect(100, 1, 100, 200); item2->setFlag(QGraphicsItem::ItemIsMovable); item2->setAcceptDrops(true); scene->addItem(item2); } MainWindow::~MainWindow() { delete ui; }