Вот пример кода того, что я пытаюсь сделать! Когда я запускаю его, QEvent :: Drop никогда не вызывается! Я даже пытался использовать viewport () и писать кусок, включая dragMove, но ничего не работает.
setAcceptDrops имеет значение true как для MainWindow, так и для пользовательского> 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;
}
Я получил улов! Я только добавил
вернуть истину
в
if блок QEvent :: Drag
и это сработало как шарм! Спасибо всем 🙂 Я отмечу это как решенный
Других решений пока нет …