QEvent::Drop не вызывается

Вот пример кода того, что я пытаюсь сделать! Когда я запускаю его, QEvent::Drop никогда не вызывается! Я даже пытался использовать viewport() и написать часть, включающую dragMove, но ничего не работает.

setAcceptDrops верно как для MainWindow, так и для ui->EditorMdiArea Очень нужна помощь!

Благодарю вас

 bool MainWindow::eventFilter(QObject *pFilterObj, QEvent *event) {
    if((pFilterObj==ui->EditorMdiArea) && (event->type()==QEvent::Drag)) {
         QDragEnterEvent *devent = (QDragEnterEvent*)event;
         qDebug()<<"Here we are 1";
            devent->acceptProposedAction();
            devent->accept();
    }
    //if((pFilterObj==ui->EditorMdiArea) && (QVariant(event->type()).toString()=="61")) {
    //  QDragEnterEvent *devent = (QDragEnterEvent*)event;
    //   qDebug()<<"Here we are 2";
    //  devent->accept();
    //}
    qDebug()<<"pFilterObj is "<<pFilterObj;
    qDebug()<<"event type is "<<event->type();
    //ui->EditorMdiArea->viewport()->installEventFilter(this);
    //ui->EditorMdiArea->viewport()->setAcceptDrops(true);

    if((pFilterObj==ui->EditorMdiArea) && (Qevent->type()==QEvent::Drop)) {
        qDebug()<<" Inside pFilterObj is "<<pFilterObj;
    qDebug()<<"Inside event type is "<<event->type();
        QDropEvent *devent = (QDropEvent*)event;
          qDebug()<<"Finaly Destination Reached";
            }
        }
    }
    }
    return false;
}

person jmoriarty    schedule 18.06.2018    source источник
comment
это не C а C++   -  person Ôrel    schedule 18.06.2018
comment
Мне жаль! Должно быть, я по ошибке поставил тег C. Исправление было сделано   -  person jmoriarty    schedule 18.06.2018
comment
@jmoriarty event-type() или event->type()?   -  person eyllanesc    schedule 18.06.2018
comment
Там опечатка! Это событие › типа. Прошу прощения за опечатку! Исправил это   -  person jmoriarty    schedule 18.06.2018
comment
Вы включили события перетаскивания? Подобно тому, как вы должны установить фильтр событий, вам нужно включить эту функцию.   -  person Mike    schedule 18.06.2018
comment
Да! Перетаскивание работает нормально и фильтр событий ловит его! Drop тоже был включен, но IDK, почему фильтр событий не может его поймать :-(   -  person jmoriarty    schedule 19.06.2018
comment
Вы пытались переопределить void dropEvent(QDropEvent *event);?   -  person pat    schedule 19.06.2018
comment
Нет! Но я получил улов. Я только что добавил return true в блок if QEvent::Drag, и это сработало просто великолепно! Спасибо всем :-) Я также добавлю это в ответ.   -  person jmoriarty    schedule 19.06.2018


Ответы (1)


Я получил улов! я только что добавил

вернуть истину

в

если блок QEvent::Drag

и это сработало как шарм! Спасибо всем :-) Я отмечу это как решенное

person jmoriarty    schedule 19.06.2018