try this:
{
if (event->button() == Qt::LeftButton)
{
mimeData->setText("myDrageLabel");
drag->setMimeData(mimeData);
Qt::DropAction dropAction = drag->start(Qt::CopyAction | Qt::MoveAction);
if (dropAction == Qt::MoveAction)
{
close();
update();
}
}
}
in your base class, in which you are using drag object (say myWidget)
myWidget
::myWidget(QWidget *parent
) : {
setAcceptDrops(true);
...
}
{
if (event->mimeData()->hasText())
{
event->acceptProposedAction();
}
else
{
event->ignore();
}
}
{
if (event->mimeData()->hasText())
{
//QString plainText = event->mimeData()->text();
QPoint dropPos
= event
->pos
();
QDragObject *drobj;
if ( pixmap() )
drobj = new QImageDrag( pixmap()->convertToImage(), this );
drobj->move(dropPos);
drobj->show();
if (children().contains(event->source()))
{
event->setDropAction(Qt::MoveAction);
event->accept();
}
else
{
event->acceptProposedAction();
}
}
else
{
event->ignore();
}
}
void drag::mousePressEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton)
{
QMimeData *mimeData = new QMimeData;
mimeData->setText("myDrageLabel");
QDrag *drag = new QDrag(this);
drag->setMimeData(mimeData);
Qt::DropAction dropAction = drag->start(Qt::CopyAction | Qt::MoveAction);
if (dropAction == Qt::MoveAction)
{
close();
update();
}
}
}
in your base class, in which you are using drag object (say myWidget)
myWidget::myWidget(QWidget *parent) :
QWidget(parent)
{
setAcceptDrops(true);
...
}
void myWidget::dragEnterEvent(QDragEnterEvent *event)
{
if (event->mimeData()->hasText())
{
event->acceptProposedAction();
}
else
{
event->ignore();
}
}
void myWidget::dropEvent(QDropEvent *event)
{
if (event->mimeData()->hasText())
{
//QString plainText = event->mimeData()->text();
QPoint dropPos = event->pos();
QDragObject *drobj;
if ( pixmap() )
drobj = new QImageDrag( pixmap()->convertToImage(), this );
drobj->move(dropPos);
drobj->show();
if (children().contains(event->source()))
{
event->setDropAction(Qt::MoveAction);
event->accept();
}
else
{
event->acceptProposedAction();
}
}
else
{
event->ignore();
}
}
To copy to clipboard, switch view to plain text mode
Bookmarks