手段,在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。可見其包括了任務欄的高度。