您的位置:首页 > 编程语言 > C语言/C++

关于Qt/C++和QML获取屏幕大小方法的总结

2017-04-27 20:10 489 查看
在桌面应用程序的开发过程中,获取屏幕(桌面)的大小来定位桌面应用所显示的位置,是桌面开发中经常用到的

手段,在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。可见其包括了任务栏的高度。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息