当前位置: 首页 > news >正文

Qt获取屏幕(桌面)的大小或分辨率

Qt提供QDesktopWidget和QScreen两个类获取屏幕大小。Qt5开始,QDesktopWidget官方不建议使用,改为QScreen。Qt 6.0 及之后版本,QDesktopWidget 已从QtWidgets 模块中被彻底移除。

QDesktopWidget

QDesktopWidget 提供了详细的位置信息,其能够自动返回窗口在用户窗口的位置和应用程序窗口的位置。

QDesktopWidget* pDesktopWidget = QApplication::desktop();//获取可用桌面大小
QRect deskRect = QApplication::desktop()->availableGeometry();
//获取主屏幕分辨率
QRect screenRect = QApplication::desktop()->screenGeometry();
//获取屏幕数量
int nScreenCount = QApplication::desktop()->screenCount();

QScreen 获取系统屏幕大小

#include<QScreen>
#include<QRect>//单屏幕
QScreen* screen = QGuiApplication::primaryScreen();  //获取主屏幕//多屏幕
QList<QScreen *> screenList =  QGuiApplication::screens();  //多显示器
QList<QRect *> rectList;
for(int i = 0; i < screenList.size(); i++){rectList.append(screenList.at(i).geometry());  //分辨率大小
}

如果是多屏幕,其每个屏幕的rect是不一样的,起始坐标不同,第一个屏幕的起始坐标是(0, 0),第二个屏幕的起始坐标是(1920, 0) 

    /*** 设置窗体初始化位置及尺寸。*/QScreen* screen = QApplication::primaryScreen();QRect rectangle = screen->geometry();int width = rectangle.width();int height = rectangle.height();setGeometry(width / 10, height / 10, width * 3 / 4, height * 4 / 5);

 geometry() 与 availableGeometry() 的区别

QScreen* screen = QGuiApplication::primaryScreen();QRect rect1 = screen->geometry();
qDebug() << "rect1" << rect1.size().width() << rect1.size().height();
qDebug() << rect1.topLeft();
qDebug() << rect1.bottomRight();QRect rect2 = screen->availableGeometry();
qDebug() << "rect2" << rect2.size().width() << rect2.size().height();
qDebug() << rect2.topLeft();
qDebug() << rect2.bottomRight();
  • geometry()返回的是屏幕的大小,即屏幕分辨率大小,包括屏幕下方的工具栏(1090*1080)
  • availableGeometry()返回可用屏幕的大小,不包括屏幕下方的工具栏(1090*1040)
http://www.lryc.cn/news/177510.html

相关文章:

  • 第4讲:vue内置命令(文本插值,属性绑定,v-text,v-html)
  • vue实现自动生成路由,非手动创建,含避坑点
  • 数据挖掘note(赵老师语录)
  • 秋招在线人才测评考什么内容?
  • LeetCode算法二叉树—236. 二叉树的最近公共祖先
  • Qt事件处理
  • 宝塔nginx搭建Ftp文件服务器
  • SAP和APS系统订单BOM核对(SAP配置BOM攻略九)
  • ExcelServer EXCEL服务器使用- 用户、角色权限配置
  • JOSEF约瑟 静态中间继电器JZY-402 JZJ-404 AC220V 触点形式两开两闭
  • C#并发编程的实现方式
  • qemu源码下载和安装
  • 计算机,软件工程,网络工程,大数据专业毕业设计选题有哪些(附源码获取)
  • CyclicBarrier 、CountDownLatch 、Semaphore 的用法
  • RestTemplate发送HTTPS请求
  • 图像练习-矩形4点OpenCV(01)
  • 不同层设置不同学习率
  • 剑指offer32Ⅰ:从上到下打印二叉树
  • 【VUE复习·8】v-if;v-show高级
  • 线程同步需要注意什么?
  • 力扣算法题:35、搜索插入位置.java版
  • 七、热力图展示
  • 基于微信小程序的新闻发布平台小程序设计与实现(源码+lw+部署文档+讲解等)
  • 【论文阅读】Directional Connectivity-based Segmentation of Medical Images
  • 借“牛油果”爆款出圈,甜啦啦的底牌只是“价格”?
  • 【C语言】快速排序
  • Java列表查询Long(id)到前端转换出错
  • react import爆红
  • ThreeJS-3D教学三:平移缩放+物体沿轨迹运动
  • 玩玩“小藤”开发者套件 Atlas 200I DK A2 之VSCode远程连接