Qt过滤事件
.h
bool eventFilter(QObject *obj, QEvent *eve);.cpp
m_TableWidget->viewport()->installEventFilter(this);bool RouterPlan::eventFilter(QObject *obj, QEvent *eve)
{if (obj == m_TableWidget->viewport()){if (eve->type() == QEvent::Drop){const QMimeData *mime = ((QDropEvent*)eve)->mimeData();QByteArray encodedata = mime->data("application/x-qabstractitemmodeldatalist");if (encodedata.isEmpty()){return false;}QDataStream stream(&encodedata, QIODevice::ReadOnly);...}else{return QWidget::eventFilter(obj, eve);}}else{return QWidget::eventFilter(obj, eve);}
}
Qt接受消息
.h
virtual bool nativeEvent(const QByteArray &eventType, void *message, long *result);.cpp
// ::SendMessage((HWND)parent->winId(), WM_USER + 100, (WPARAM)&type, NULL);
bool RouterPlan::nativeEvent(const QByteArray &eventType, void *message, long *result)
{Q_UNUSED(eventType);MSG* msg = reinterpret_cast<MSG*>(message);if (msg->message == WM_USER + 100){...}return QWidget::nativeEvent(eventType, msg, result);
}