關於Qt/C++和QML獲取屏幕大小方法的總結

在桌面應用程序的開發過程中,獲取屏幕(桌面)的大小來定位桌面應用所顯示的位置,是桌面開發中經常用到的
手段,在Qt開發和QML開發中也不例外,本篇着重介紹Qt獲取桌面屏幕大小的兩種方法,以及對應的QML中獲取桌面屏幕
大小的兩種方法。
首先上圖,說明一下屏幕桌面的區域劃分:

如圖:

一、Qt/C++獲取桌面屏幕大小:
    (1)、包含頭文件
    #include <QApplication>
    #include <QDesktopWidget>
    (2)、獲取方法
    首先需要調用:
QDesktopWidget* desktopWidget = QApplication::desktop();
    得到桌面對象的指針,然後調用如下兩個函數分別獲取桌面客戶區大小和整個桌面的大小。
    (2.1)、調用如下方法得到客戶區的矩形(上圖中的藍框):
    QRect clientRect = desktopWidget->availableGeometry();
    根據方法 clientRect.width() 和 clientRect.height() 就可以獲取桌面客戶區的寬和高的大小。
    例如:如果屏幕的分辨率爲1366*768,則以上獲取的寬爲1366,高爲728.可見其去除了任務欄的高度。
    (2.2)、調用如下方法可得到整個桌面的矩形(上圖中的紅框):
    QRect applicationRect = desktopWidget->screenGeometry();
    根據方法 applicationRect.width() 和 applicationRect.height() 就可以獲取整個桌面的寬和高的大小。
    例如:如果屏幕的分辨率爲1366*768,則以上獲取的寬爲1366,高爲768。可見其包括了任務欄的高度。

二、QML獲取桌面屏幕大小:
(1)、引入聲明文件
import QtQuick.Window 2.2
(2)、獲取方法
(2.1)、通過全局對象Screen獲取客戶區的矩形(上圖中的藍框):
根據Screen對象的屬性desktopAvailableWidth和desktopAvailableHeight,即Screen.desktopAvailableWidth和
Screen.desktopAvailableHeight即可得到桌面客戶區的寬和高的大小。
例如:如果屏幕的分辨率爲1366*768,則以上獲取的寬爲1366,高爲728.可見其去除了任務欄的高度。
(2.2)、通過全局對象Screen獲取整個桌面矩形(上圖中的紅框):
根據Screen對象的屬性width和height,即Screen.width和
Screen.height即可得到桌面客戶區的寬和高的大小。

例如:如果屏幕的分辨率爲1366*768,則以上獲取的寬爲1366,高爲768。可見其包括了任務欄的高度。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章