Проверка QMimeData в QDragEnterEvent и QDropEvent - PullRequest
0 голосов
/ 14 сентября 2018

Мне было интересно, будет ли хорошей практикой проверять данные 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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...