歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Qt--程序在模擬器和真機中的顯示以及獲取設備的大小

Qt--程序在模擬器和真機中的顯示以及獲取設備的大小

日期:2017/3/1 11:17:27   编辑:Linux編程
在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