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

2023-11-19

在桌面应用程序的开发过程中,获取屏幕(桌面)的大小来定位桌面应用所显示的位置,是桌面开发中经常用到的
手段,在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。可见其包括了任务栏的高度。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 删除 QComboBox“下拉”动画

    我正在使用 Qt 4 8 并且想在单击 QComboBox 时摆脱 下拉 动画 我也想稍微移动一下 到目前为止 我一直在考虑重新实现 showPopup 和 hidePopup 但不知道如何使其工作 此外 每次我尝试使用 CSS 进行移动或
  • 如何在Qt中设置编译器?

    我对 Qt 完全陌生 我下载了离线版本 Qt 5 3 2 for Windows 64 bit VS 2013 OpenGL 573 MB 我无法编译我的项目 I have Qt Creator 3 2 1 开源 基于Qt 5 3 2 MS
  • 通过对 XmlHttpRequest (REST) 的响应在 QML 中显示图像

    我需要从 REST API 调用中获取 jpeg 图像 我使用 XMLHttpRequest 因为请求需要身份验证标头 即我不能只创建一个图像并将源设置为带有 user passwd url 的 URL 我认为我可以通过将 REST 数据设
  • 获取小部件的背景颜色 - 真的

    我无法获取小部件的实际背景颜色 在我的特殊情况下 我在使用 QTabWidget 中的小部件时遇到问题 这是在Windows7上 因此 经典的小部件有一些灰色背景 而选项卡内的小部件通常用白色背景绘制 I tried def bgcolor
  • 我的 QSqlQueryModel 不在列表视图中显示数据

    我正在玩 QSqlQueryModel 但我现在完全陷入困境 我一整天都在寻找解决方案 但到目前为止还没有运气 我所做的工作是它从我的 sqlite 数据库中提取数据 但由于某种原因我无法在列表视图中显示它 我的角色名似乎不存在 对于我从数
  • QToolBar 的菜单延迟

    我通过制作 QAction 并向其添加 QMenu 在 QToolBar 上有一个菜单 如何消除单击图标时出现菜单之前的延迟 QToolBar myToolBar new QToolBar this QAction myAction new
  • cx_freeze:QODBC 驱动程序未加载

    我的 python 应用程序如下所示 test py from PyQt4 import QtCore from PyQt4 import QtGui from PyQt4 import QtSql import sys import at
  • QT 中只获取文件而不获取目录?

    当我这样做时 QDir myDir home some location QStringList filesList myDir entryList 它返回该位置内的文件和目录 但我只想要文件 并且这些文件可以具有任意扩展名 有任何想法吗
  • Qt 支持在 QIcon 中为 SVG 着色

    看来 Qt 不支持 SVG 中路径标签上的描边 填充选项
  • 在 QtCreator 中将 OpenCV 2.3 与 Qt 结合使用

    随着 OpenCV 2 3 版本终于发布 我想在我的系统上编译并安装这个最新版本 由于我经常使用 Qt 和 QtCreator 我当然希望能够在我的 Qt 项目中使用它 我已经尝试了几种方法几个小时 但总是出现错误 第一次尝试 使用WITH
  • MAC 上的 QT/C++ - 未设置应用程序图标

    我正在努力解决的奇怪问题 在与我的 pro QT 项目文件相同的文件夹中 我有一个 Resources myIcon png 我试图将其设置为我构建的应用程序的图标 在 OSX 上运行 我阅读了文档 它建议在 pro 文件中添加 ICON
  • 从 QML 实例化 C++ 对象会产生巨大的内存使用开销

    实例化一个QObjectC 堆中的派生类为每个对象提供了大约 160 个字节 通过注册相同的对象qmlRegisterType 用于从 QML 创建并通过以下方式动态创建对象createObject 每个对象给我 2000 多个字节 这是完
  • Qt程序部署到多平台,如何?

    我是 Qt 编程新手 我想开发一个程序 我想在 Windows Linux ubuntu 和 Mac 上运行 听说Qt支持多平台应用程序开发 但我的问题是 在我部署或编译后 任何 Qt 库都需要在 Ubuntu 中运行这个应用程序吗 如果您
  • Qt Creator:如何区分 win32 和 win64

    我必须在 pro 文件中执行类似的操作 win32 LIBS L 3rdparty libusb win32 lib msvc llibusb else win64 LIBS L 3rdparty libusb win32 lib msvc
  • 当我尝试构建 Qt 4.7.1 静态库时,“找不到 -ljscore”

    我尝试从最新的源构建静态 Qt 库 但出现以下错误 usr bin ld cannot find ljscore collect2 ld returned 1 exit status 如何解决这个问题呢 这是 Qt 构建系统中自 4 7 0
  • QT/QML Android App,点击通知栏时打开应用程序

    我为 Android 应用程序制作了一个 QT 当我单击平板电脑中上面看到的按钮通知栏时 但是 如果单击通知 我的应用程序将打开 聚焦 不知道 并显示黑色窗口 简单来说怎么做呢 我的代码是 package org ays operation
  • Qt - 如何粘合两个窗口并将它们移动在一起?

    就像qmmp Qt 音乐播放器ui设计一样 这两个或三个窗口实际上在同一个窗口中 因为只有一个dock图标 并且这些窗口可以一起移动并相互附着 我看了源码 好像有用QDockWidget 但我真的不知道如何获得它的细节 当您手动移动辅助窗口
  • 如何获取 QTableView 的标题列表?

    我有一个QTableView我的对话框中的对象 我需要访问该表的水平标题并将它们放入QStringList object 尽管进行了大量搜索 但我在 Qt 文档中找不到如何获取此标头列表 编辑 我发现的最接近的地方是this https w
  • 如何使QTableView类的restoreState()和saveState()正常工作?

    首先 我想说 我的问题已经在这里讨论过 并且这里是 https stackoverflow com questions 1163030 qt qtableview and horizontalheader restorestate 但答案并
  • Qt:测量事件处理时间

    我想测量我的应用程序中的哪些事件在主线程中需要很长时间才能执行 阻塞 GUI 或者至少是否有任何事件花费的时间超过 比如说 10 毫秒 显然 我对需要很长时间的任务使用线程和并发 但有时很难在其他线程中放入的内容和可以保留在 GUI 中的内

随机推荐

  • 迪杰斯特拉算法(Dijkstra)-Java实现

    迪杰斯特拉算法也是求两点之间最短路径的算法 它的思想和普利姆算法有点相似 不断通过已找到点集合和未找到点之间的集合之间的最短路径 这个算法需要用到三个数组 一个是存储结点是否已经访问 一个是结点到起始点的最短距离 还有一个是结点到起始点第一
  • Java实现简单版SVM

    Java实现简单版SVM 最近的图像分类工作要用到latent svm 为了更加深入了解svm 自己动手实现一个简单版的 之所以说是简单版 因为没有用到拉格朗日 对偶 核函数等等 而是用最简单的梯度下降法求解 其中的数学原理我参考了http
  • 解决Adobe Flash Player已不再受支持的问题

    1 问题展示 我们在访问某些网站时 可能会出现Adobe Flash Player已不再受支持的问题 具体如下图所示 这会对我们的日常生活需求产生极大的不便 因此迫切需要一个能够解决此问题的方法 其实很简单 具体操作请看下面的步骤 2 下载
  • 移动端+PC端图片预览+手势缩放等功能合集

    话不多说 直接上代码 大家可按需求功能复制使用 window onload function 点击图片进入预览 var Dom document querySelector preview Dom onclick function var
  • 接口如何实现多态

    抽象类是用来继承的 不能被实例化 抽象类里可以有成员变量 接口中没有 1 抽象类里的抽象方法 只有在子类实现了才能使用 2 抽象类里的普通方法 可被子类调用 3 接口里的方法 都被默认修饰为public abstract类型 4 接口里的变
  • 记录1年免费亚马逊AWS云服务器申请方法过程及使用技巧

    转载 http www itbulu com free aws html 早年我们才开始学习网站建设的时候 会看到且也会寻找免费主机商 主要原因是那时候提供免费主机的商家还是比较靠谱的 而且那时候主机商并不是很多且成本也比较大 我们深知听到
  • linux上层app调用驱动底层的过程详解

    APP应用程序 gt 应用框架层 gt 硬件抽象层 gt 硬件驱动程序 一 硬件驱动层 进入kernel drivers文件夹中 创建一文件夹 放入驱动程序 包括头文件 C文件 Makefile Kconfig 同时对drivers下的Ma
  • 滚动屏幕或缩放屏幕,使用节流

    场景 滚动屏幕 onScroll 缩放屏幕 resize 如果需要统计用户滚动屏幕或缩放屏幕的行为作出相应的网页反应 容易导致网络的阻塞 mounted window addEventListener resize this throttl
  • 基于聚类的异常值检测算法依据及python实现

    假设数据集D被聚类算法划分到k个类C C1 C2 CK 对象p 的离群因子of3 p 定义为 与所有类间距的加权平均值 其中 D 为样本数量 Cj 为第j个聚类群体样本数量 d p cj 为样本p与第j个聚类中心的距离 其中cj表示第j个聚
  • LeetCode·每日一题·1851. 包含每个查询的最小区间·优先队列(小顶堆)

    题目 示例 思路 离线查询 输入的结果数组queries 是无序的 如果我们按照输入的queries 本身的顺序逐个查看 时间复杂度会比较高 于是 我们将queries 数组按照数值大小 由小到大逐个查询 这种方法称之为离线查询 位运算 离
  • ExtJS之 Proxy数据代理

    ExtJS之 Proxy数据代理 代理种类截图 ExtJS提供的数据代理主要分为两大类 1 客户端代理 Ext data proxy Client 2 服务器代理 Ext data proxy Server 这两个类 都继承自 Ext da
  • Ansible的简介及部署

    1 ansible简介 1 1 什么是ansible ansible是一款开源自动化平台 是一个配置管理工具 自动化运维工具 1 2 ansible的优点 跨平台支持 人类可读自动化 ansible提供linux Windows unix和
  • 类的一些内置方法

    一 slots 用来取代 dict 优势是省内存 附加功能是只能创建slots 定义好的key 注意 不要乱用 用了就没有 dic 方法了 class Foo slots name age 这里可以是列表或者单个字符串 定义key值 f1
  • 解决matplotlib画图中文乱码

    一 下载字体 以SimHei字体为例 下载SimHei ttf文件 在python环境下输入 import matplotlib print matplotlib path 输出matplotlib的安装环境 放在该路径下的mpl data
  • 彻底删除SVN版本库某一文件夹或文件

    基础描述 要彻底删除SVN版本库某一文件夹或文件 可采取这种方法 举例说明 例 假设SVN库路径为E svn project 库中的目录结构为 Trunk Software test exe 删除Software 目录下的test exe文
  • 赫尔德不等式详细证明

    赫尔德不等式详细证明 k 1n akbk k 1n ak p 1 p k 1n bk q 1 q 1 sum k 1 n left a k b k right leqslant sum k 1 n left a k right p 1 p
  • FPGA实战--等精度频率测量

    首先放置效果图 本次试验中采用的是等精度测频率 等精度测频的原理是产生一个1s的高电平 在高电平中对被测方波进行计数 所测得数字即该波形频率 具体等精度测量原理请参考 http www elecfans com d 591858 html
  • 若依框架前后端分离版本自动生成代码的详细步骤

    1 若依框架的下载和本地运行这里就不介绍了主要讲代码自动生成 只是单表的增删改成 复杂的多表业务逻辑还是需要自己手写的 话不多说直接上图 一 新建模块 本地运行起来后右键新建Module 注意这里的Name 可以和若依类似 也可以自己定义新
  • 基于Axure 8课程设计-前端页面设计-漫画APP界面/UI设计(免费分享.rp文件学习)

    这次的课程设计主要是UI设计 基于Axure我设计了一个类似动漫之家的一个设计界面 以下是效果图 UI首页 点击夜魔侠 点击更新按钮 点击分类按钮 排行 点击专题按钮之后 点击搜索按钮之后 点击 新闻 按钮 点击 轻小说 按钮 点击 我的
  • 关于Qt/C++和QML获取屏幕大小方法的总结

    在桌面应用程序的开发过程中 获取屏幕 桌面 的大小来定位桌面应用所显示的位置 是桌面开发中经常用到的 手段 在Qt开发和QML开发中也不例外 本篇着重介绍Qt获取桌面屏幕大小的两种方法 以及对应的QML中获取桌面屏幕 大小的两种方法 首先上