Qt5의 비정상적인 드롭 이벤트 무시
Qt5에는 모달 위젯이 존재해도 메인 윈도우가 드롭 이벤트를 받아들이는 버그가 있습니다.
이를 방지하려면 비정상적인
DragEnter
이벤트를 중지하는 이벤트 필터를 만들어 QApplication
에 설치합니다.DragEnter
이벤트 무시 DragEnter
를 무시하면 드롭도 할 수 없게 되어, 마우스 커서가 드롭을 받아들이는 아이콘이 되지 않습니다.구현 예는 다음과 같습니다.
class DragEventEater : public QObject
{
public:
DragEventEater(QObject* parent): QObject(parent) {}
protected:
bool eventFilter(QObject *obj, QEvent *event)
{
if (event->type() == QEvent::DragEnter)
{
if (QObject* modalWidget = QApplication::activeModalWidget())
{
for (; obj; obj = obj->parent())
{
if (obj == modalWidget)
{
return false;
}
};
return true;
}
}
return false;
}
};
Reference
이 문제에 관하여(Qt5의 비정상적인 드롭 이벤트 무시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tetsurom/items/83b1eb1f3fdfa4dd7f84텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)