【QT】如何获取屏幕(桌面)的大小或分辨率

这篇具有很好参考价值的文章主要介绍了【QT】如何获取屏幕(桌面)的大小或分辨率。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. QDesktopWidget 获取系统屏幕大小

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

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

Qt5开始,QDesktopWidget官方不建议使用,改为QScreen。
Qt 6.0 及之后版本,QDesktopWidget 已从QtWidgets 模块中被彻底移除。

2. QScreen 获取系统屏幕大小

Qt5开始,QDesktopWidget官方不建议使用,改为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)文章来源地址https://www.toymoban.com/news/detail-667974.html

3. 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)

到了这里,关于【QT】如何获取屏幕(桌面)的大小或分辨率的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C/C++】使用C++和Direct3D (d3d)获取屏幕截图并根据传入分辨率进行缩放图片大小

    目录 一,函数清单 1.Direct3DCreate9 函数 2.IDirect3D9::CreateDevice 方法 3.IDirect3DDevice9::GetDisplayMode 方法 4.IDirect3DDevice9::CreateOffscreenPlainSurface 方法 5.IDirect3DDevice9::GetFrontBufferData 方法 6.IDirect3DDevice9::D3DXLoadSurfaceFromSurface 方法 7. D3DXSaveSurfaceToFile 函数 二,关键代码实现 三,最终实现

    2024年01月18日
    浏览(36)
  • android获取屏幕分辨率的正确方法;获取到分辨率(垂直方向像素)的不正确

    我通过下面的方法去获取屏幕分辨率的,但获取到的分辨率有时会不准确。原因是此方法有时候会忽略一些布局或控件的高度,从而得不到正确的高度。 而通过另外一个方法则没有上述那种问题,可以获取到正确的屏幕分辨率。

    2024年02月14日
    浏览(43)
  • python --获取本机屏幕分辨率

    方法一 使用 win32api.GetDeviceCaps() 方法来获取显示器的分辨率。 使用 win32api.GetDC() 方法获取整个屏幕的设备上下文句柄,然后使用 win32api.GetDeviceCaps() 方法获取水平和垂直方向的分辨率。最后需要调用 win32api.ReleaseDC() 方法释放设备上下文句柄。 方法二 使用 win32api.EnumDisplayMon

    2024年02月13日
    浏览(40)
  • QT 程序自适应屏幕分辨率

    参考资料:https://blog.csdn.net/woshiwangxin0/article/details/78659209 1、step1: 点击UI界面文件控件间的空白区域,然后选择工具中的栅格布局(网格布局),点击后,它会自动调整你的控件大小,默认将你的widget的框长宽大小设置为0。 2、step2 需要对每个控件设置其大小(最小宽、高以

    2024年02月16日
    浏览(28)
  • 屏幕分辨率:PC / 手机 屏幕常见分辨率,前端如何适配分辨率

    一、常见的PC屏幕分辨率 序号 水平像素点数和垂直像素点数 也被称为 常见显示器 1 1366 × 768 720p 或 HD Ready 常见于笔记本电脑和低端桌面显示器 2 1920 × 1080 1080p 或 Full HD / 全高清 高端笔记本电脑和中高档台式机 3 2560 × 1440 2K 分辨率 常见于高端笔记本电脑和高端台式机 4 38

    2024年02月03日
    浏览(55)
  • Python获取视频分辨率大小

    可以使用 Python 的 cv2 库来获取视频的分辨率大小。具体来说,需要执行以下步骤: 1、首先,你需要安装 cv2 库。你可以使用 pip 安装: 2、然后,需要导入 cv2 库并打开视频文件。就可以使用 cv2.VideoCapture 函数来打开视频文件: 3、接着,可以使用 cv2.VideoCapture.get 函数获取视

    2024年02月15日
    浏览(48)
  • java 获取屏幕分辨率和显示器信息

    java中awt框架中提供有直接获取分辨率的方法,如下:  如屏幕分辨率是1920*1080时,scrSize.width的值为1920,scrSize.height的值为1080。  获取屏幕分辨率 上面内容可以获取 获取每英寸的像素点 获取显示器实际宽高(英寸) 获取显示大小 ps:我们平时所说显示器多少英寸,实际为显

    2024年02月12日
    浏览(42)
  • QT实现窗口大小随分辨率变化而变化

    先上三张效果图,分别是原窗口、等比放大窗口和等比缩小窗口。 实现原理,就是借用QGraphicsView的缩放功能来实现的,并且做好QGraphicsView的防锯齿设置,就能完美的适应各种不同分辨率的显示器上了。 分辨率转换原理,如果窗口需要放在大分辨率的显示器上,需要将原窗口

    2024年02月12日
    浏览(37)
  • C# 获取系统DPI缩放比例以及分辨率大小

    虚拟屏幕是指所有物理屏幕组合成的逻辑屏幕,可以用于跨越多个物理屏幕显示应用程序。 这两个方法都可以在 正常情况 下获取到屏幕的分辨率 - 当桌面缩放比例不是 100% 的时候获取到的分辨率就是“真实”的分辨率了,而是按缩放比例调整以后屏幕显示的内容的宽度和高

    2023年04月26日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包