歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> 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。

Copyright © Linux教程網 All Rights Reserved