QEvent::Drop 未调用
QEvent::Drop not called
这是我尝试做的示例代码!当我 运行 它 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;
}
我明白了!我刚刚添加了
return true
在
if block of QEvent::Drag
而且效果非常好!谢谢大家 :-) 我会把它标记为已解决
这是我尝试做的示例代码!当我 运行 它 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;
}
我明白了!我刚刚添加了
return true
在
if block of QEvent::Drag
而且效果非常好!谢谢大家 :-) 我会把它标记为已解决