Welcome 微信登录

首页 / 操作系统 / Linux / Qt--程序在模拟器和真机中的显示以及获取设备的大小

在Qt Creator中,程序的显示在QWidget中提供了一些方法,      show();                    ---正常显示      showMaximized();    ---窗口最大化      showMinimized();     ---窗口最小化      showFullScreen();    ---全屏显示       如果想要在windows中正常显示窗口,但却想在模拟器或者真机上全屏显示程序, 就需要用到一些用来条件编译的宏了。这些宏是Qt为了实现跨平台的程序,从而在不同的平台上编译不同的代码,这些宏如下:      Q_WS_SIMULATOR    --模拟器      Q_OS_SYMBIAN         --Symbian设备      Q_OS_WIN                --windows环境      那么要实现上面的显示的话,以下代码就ok了。
  1. #ifdef Q_WS_SIMULATOR      
  2.     showFullScreen();   //模拟器上的全屏   
  3. #elif defined(Q_OS_SYMBIAN)   
  4.    showFullScreen();   //Symbian设备上的全屏    
  5. #elif defined(Q_WS_MAEMO_5) || defined(Q_WS_MAEMO_6)   
  6.     showMaximized();   //maemo设备上最大化显示   
  7. #else   
  8.     show();            //其他的都正常显示   
  9. #endif  
      如果想只隐藏掉Symbian中的状态栏,可以在窗口部件的构造函数中添加如下代码:      QWidget::setWindowFlags(windowFlags() | Qt::WindowSoftkeysVisibleHint);      并且让程序全屏显示ShowFullScreen();       同样的想要只现在状态栏,而不想显示控制栏,则在构造函数中添加:       QWidget::setWindowFlags(windowFlags() ^ Qt::WindowSoftkeysVisibleHint);      并让程序最大化显示ShowMaximized();      具体可以参照Nokia论坛http://wiki.forum.nokia.com/index.php/Hiding_status_and_control_panes_in_Qt_for_Symbian       获取设备的大小,可以使用 QApplication::desktop()->screenGeometry();      在QDesktopWidget类中提供了两个方法,availableGeometry()--返回的是实际屏幕的大小(全屏幕),比如windows中包括任务栏所占用的区域。      screenGeometry()--返回的是一般屏幕的大小,即未占用的区域,他们的返回值是Qrect。