[[qtscene]]
 
#include "mainwindow.h"
#include "ui_mainwindow.h"
 
#include <QGraphicsScene>
#include <QGraphicsItem>
#include <QDrag>
#include <QMimeData>
#include <QGraphicsSceneDragDropEvent>
 
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;
}
 
qtscene.txt · Last modified: 2014/03/17 15:30 by 147.32.8.22
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki