qt 4.8升级到5.X QCoreApplication::EventFilter 问题
手里原来有个项目是4.8做的 的代码中包含static QCoreApplication::EventFilter m_oldEventFilter;,现在全部升级到 5.X后,事件不响应了,在qt5中应该采用什么实现?
类定义:
class TabsManager : public QObject
{
Q_OBJECT
publlc:
static QCoreApplication::EventFilter m_oldEventFilter;\
......
TabsManager();
~TabsManager();
};
调用:
TabsManager* TabsManager::m_instance = NULL;
QCoreApplication::EventFilter TabsManager::m_oldEventFilter = NULL;
TabsManager::~TabsManager() {
if (m_oldEventFilter) {
qApp->setEventFilter(m_oldEventFilter);
}
}
TabsManager* TabsManager::getInstance() {
if (m_instance == NULL) {
m_instance = new TabsManager();
m_oldEventFilter = qApp->setEventFilter(&TabsManager::eventFilter);
}
return m_instance;
}
bool TabsManager::eventFilter(void *message_, long *result)
{
......
if (TabsManager::m_oldEventFilter)
return TabsManager::m_oldEventFilter(message_, result);
else
return false;
}