qt 4.8升级到5.X QCoreApplication::EventFilter 问题

tianzixunlong1 2015-07-28 11:21:29
手里原来有个项目是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;
}
...全文
124 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianzixunlong1 2015-08-14
  • 打赏
  • 举报
回复
引用 1 楼 dext 的回复:
void QCoreApplication::installNativeEventFilter(QAbstractNativeEventFilter * filterObj)
我查了资料,大概也是这个实现,可是官方文档给的太简单了,不知道怎么使用啊。
dext 2015-07-28
  • 打赏
  • 举报
回复
void QCoreApplication::installNativeEventFilter(QAbstractNativeEventFilter * filterObj)

16,239

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧