本文介绍: 注意:如果是多屏幕,其每个屏幕rect是不一样的,起始坐标不同第一个屏幕的起始坐标是(0, 0),第二个屏幕的起始坐标是(1920, 0)QDesktopWidget 提供了详细位置信息,其能够自动返回窗口用户窗口位置应用程序窗口位置。Qt 6.0 及之后版本,QDesktopWidget 已从QtWidgets 模块中被彻底移除。Qt5开始,QDesktopWidget官方建议使用改为QScreen。Qt5开始,QDesktopWidget官方建议使用改为QScreen

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&gt;
#include<QRect&gt;
 
//单屏幕
QScreen* screen = QGuiApplication::primaryScreen();  //获取主屏幕

//多屏幕
QList<QScreen *&gt; 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)

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)

原文地址:https://blog.csdn.net/WL0616/article/details/129182751

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_40386.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注