Qt For Symbian截获程序前后台切换事件

移动开发
在项目中需要做一个功能:当程序切换到后台时:需将代表程序的托盘显示在手机桌面上。而当程序切换到前台显示出来时则把托盘给隐藏。想知道下文,那块看看本文吧!

本文介绍的是Qt For Symbian截获程序前后台切换事件处理机制,在项目中需要做一个功能:当程序切换到后台时:需将代表程序的托盘显示在手机桌面上。而当程序切换到前台显示出来时则把托盘给隐藏。为了实现这一点,需要先截获程序前后台切换事件。 原本写过一片博文处理这个问题,但是那个并不怎么好用,这里给出最终的解决方案。

首先:qt本身无法跨平台实现这一点,我们只能针对不同平台来定制不同的方法。在qt for symbian下:有一个symbianEventFilter()事件过滤器,其可以截获所有symbian事件,这其中就包括前后台切换事件。不多说了,代码如下:

  1. bool CQQApplication::symbianEventFilter( const QSymbianEvent* event )     
  2. {     
  3.     const TWsEvent* pWsEvent = event->windowServerEvent();     
  4.       
  5.     if ( pWsEvent == NULL )     
  6.     {     
  7.         return false;     
  8.     }     
  9.       
  10.     if( EEventFocusLost  == pWsEvent->Type() )//切换到后台     
  11.     {     
  12.         emit signal_Foreground(false);     
  13.         return false;     
  14.     }     
  15.     else if( EEventFocusGained  == pWsEvent->Type() )//切换到前台     
  16.     {     
  17.         emit signal_Foreground(true);     
  18.         return false;     
  19.     }     
  20.     else    
  21.     {     
  22.         return false; // 交给系统处理     
  23.     }     
  24. }     
  25. #endif   

实现步骤为:

1:继承QApplication来重新实现一个自定义的应用程序类。

2:实现其中的symbianEventFilter()虚函数,处理EEventFocusLost和EEventFocusGained  这两个事件即可。

3:这两个事件前边处理完后记得return false.这样后续系统就可以继续处理了。

我的做法正如上述代码所示:一般我会发一个信号出去,在别处进行处理。

小结:Qt For Symbian截获程序前后台切换事件的内容介绍完了,现在认为笔者的这篇文章真的很好,希望对你有所帮助!!!

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-05-03 09:14:45

QtOvi商店Symbian

2011-06-08 13:45:44

Symbian Qt

2011-06-16 15:36:56

Qt Quick Symbian

2011-06-16 16:21:06

Qt Symbian FAQ

2011-06-16 14:55:04

2011-06-16 15:59:40

Qt Symbian

2011-06-16 15:17:16

2011-06-16 13:56:48

Qt Symbian DLL

2010-05-23 11:13:53

Widget开发

2011-06-28 14:27:38

Qt Qt For Sym

2011-06-16 08:46:17

Qt Symbian 手机

2011-06-27 15:22:01

Nokia Qt SDK

2011-07-08 16:46:21

QtQuick 1.0Symbian

2010-12-28 09:57:11

SymbianQtMeeGo

2011-06-23 09:31:56

Nokia Qt SDK

2009-04-12 08:45:32

Symbian诺基亚移动OS

2011-06-23 14:05:32

Qt 事件机制

2012-05-24 09:38:08

Symbian

2011-06-16 14:28:08

Qt Symbian 文件

2010-10-22 10:02:14

诺基亚Qt开发者
点赞
收藏

51CTO技术栈公众号