[Interest] DragDrop between different processes not working?
Jason H
jhihn at gmx.com
Wed Dec 17 10:52:27 CET 2014
It's been a while but I've dragged content out of browser (Firefox) into a Qt app. It works, at least back in Qt 4.x.
You have to enable DnD events. Your app won't respond to them otherwise.
> Sent: Wednesday, December 17, 2014 at 1:18 AM
> From: Wilhelm <wilhelm.meier at fh-kl.de>
> To: "interest at qt-project.org" <interest at qt-project.org>
> Subject: [Interest] DragDrop between different processes not working?
>
> 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
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
>
More information about the Interest
mailing list