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

QT 获取系统屏幕分辨率

1、在Windows API下可以使用 GetSystemMetrics(SM_CXSCREEN);GetSystemMetrics(SM_CYSCREEN) 获取。  

2、在Linux X11下可以使用XDisplayWidth() ;XDisplayHeight ()获取。
3、在QT中,很多人说是 QApplication::desktop()->width();QApplication::desktop()->height(); 这个方法对于单显示器模式当然没有问题。但是对于多显示器,特别是使用了扩展桌面的就会有问题了。今天上午仔细看了QDesktopWidget的帮助,需要使用QApplication::desktop()->screenGeometry();这个函数有好几个重载的版本,意思都一样。该函数返回一个QRect,这个QRect的宽和高就是所在Screen的分辨率。

       获取方法如下:

void GetScreenInfo()
{
    QDesktopWidget* desktopWidget = QApplication::desktop();
    //获取可用桌面大小
    QRect deskRect = desktopWidget->availableGeometry();
    //获取设备屏幕大小
    QRect screenRect = desktopWidget->screenGeometry();

    g_nActScreenX = screenRect.width();
    g_nActScreenY = screenRect.height();
    //g_nActScreenX = deskRect.width();
    //g_nActScreenY = deskRect.height();

    //获取系统设置的屏幕个数(屏幕拷贝方式该值为1)
    g_nScreenCount = desktopWidget->screenCount();
}

       说到这里, 多屏幕设置成拷贝方式时,获取的屏幕的个数是一个,只有设置成扩展时才返回多个

       打印屏幕分辨率和个数信息:

void printscreeninfo()

{
    QDesktopWidget *dwsktopwidget = QApplication::desktop();
    QRect deskrect = dwsktopwidget->availableGeometry();
    QRect screenrect = dwsktopwidget->screenGeometry();
    int scrcount = dwsktopwidget->screenCount();
    qCritical("screenrect.w==%s\n",qPrintable(QString::number(screenrect.width())));
    qCritical("screenrect.h==%s\n",qPrintable(QString::number(screenrect.height())));
    qCritical("deskrect.w==%s\n",qPrintable(QString::number(deskrect.width())));
    qCritical("deskrect.h==%s\n",qPrintable(QString::number(deskrect.height())));
    qCritical("scrcount==%s\n",qPrintable(QString::number(scrcount)));
}

原文:http://blog.csdn.net/zhb123168/article/details/6744982


相关文章:

  • QSS 用法介绍
  • 简单算法--求一个数n的二进制形式的第i位
  • #pragam once 和 #ifndef 预编译头
  • 在线编程学习【优质的资源】
  • QSizeploicy、 QLayout-setSizeConstrain
  • C语言程序员必读的5本书
  • 一个值得Geek收藏的网站
  • 如何在QML中调用C++的方法并接收C++的信号
  • 25个非常实用的jQuery/CSS3应用组件
  • Qt for android basis , Qt Android 开发基础
  • Qt 应用程序打包教程
  • ForThirdWork-No.1:C/C++笔试题回忆并整理
  • ForThirdWork-No.2:C/C++笔试题回忆并整理
  • ForThirdWork-No.3:C/C++笔试题回忆并整理
  • 字节序相关--本地字节序和网络字节序等
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • mysql 5.6 原生Online DDL解析
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • WePY 在小程序性能调优上做出的探究
  • Xmanager 远程桌面 CentOS 7
  • 什么是Javascript函数节流?
  • 正则与JS中的正则
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #Linux(帮助手册)
  • #微信小程序:微信小程序常见的配置传值
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (2022 CVPR) Unbiased Teacher v2
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (TOJ2804)Even? Odd?
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (三)elasticsearch 源码之启动流程分析
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • (转)母版页和相对路径
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • ***监测系统的构建(chkrootkit )
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .NET Remoting学习笔记(三)信道
  • .net中应用SQL缓存(实例使用)
  • .secret勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复
  • @ConditionalOnProperty注解使用说明
  • @Conditional注解详解
  • @德人合科技——天锐绿盾 | 图纸加密软件有哪些功能呢?
  • [ccc3.0][数字钥匙] UWB配置和使用(二)
  • [IE编程] WebBrowser控件的多页面浏览(Tabbed Browsing)开发接口
  • [LaTex]arXiv投稿攻略——jpg/png转pdf
  • [NBIoT]NBIoT相关知识
  • [one_demo_11]二分查找法
  • [py]python自省工具