我想知道在拖动进入和放下事件上同时检查QMimeData是否是一个好习惯?在这种情况下,似乎有必要设置每个方案的接受/忽略事件。我只是想确保自己没有做不好的事情。
#include "lineeditpath.h"
#include <QLineEdit>
#include <QDragEnterEvent>
#include <QMimeData>
LineEditPath::LineEditPath(QWidget *parent) : QLineEdit(parent)
{
setAcceptDrops(true);
}
void LineEditPath::dragEnterEvent(QDragEnterEvent *event)
{
const QMimeData *mimeData = event->mimeData();
if (mimeData->hasUrls() && mimeData->urls().count()==1) {
event->accept();
} else {
event->ignore();
}
}
void LineEditPath::dropEvent(QDropEvent *event)
{
const QMimeData *mimeData = event->mimeData();
if (mimeData->hasUrls()) {
setText(mimeData->urls().first().toLocalFile());
}
event->accept();
}