Мне было интересно, будет ли хорошей практикой проверять данные 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();
}