[Interest] DragDrop between different processes not working?
Wilhelm
wilhelm.meier at fh-kl.de
Wed Dec 17 07:18:05 CET 2014
Hi all,
below is a stripped-down example for drag/drop. It follows the Qt
examples. It works if I drag from the ListView widget to another widget
(e.g. QTextEdit) of the same(!) process. But it doesn't work if I drag
to another(!) process - with the same programm or another, e.g. kate.
So, obviously I'm missing something to enable drag/drop between
processes. But I can't figure out what - I think it must be very basic!
Can anyone help?
void ListView::mouseMoveEvent(QMouseEvent* event)
{
TRACE;
if (!(event->buttons() & Qt::LeftButton)) {
return;
}
if ((event->pos() - mMousePressPosition).manhattanLength() <
QApplication::startDragDistance()) {
return;
}
QDrag* drag = new QDrag(this);
QMimeData* mimeData = new QMimeData;
mimeData->setText(QString::fromLatin1("ABC"));
mimeData->setUrls(QList<QUrl>() << QUrl::fromLocalFile("./test.cc"));
drag->setMimeData(mimeData);
qDebug() << Q_FUNC_INFO << mimeData->text();
qDebug() << Q_FUNC_INFO << mimeData->urls();
Qt::DropAction dropAction = drag->exec(Qt::CopyAction |
Qt::MoveAction, Qt::CopyAction);
qDebug() << Q_FUNC_INFO << "drop:" << dropAction;
}
--
Wilhelm
w.meier at unix.net
More information about the Interest
mailing list