Qt提供QDesktopWidget和QScreen两个类获取屏幕大小。Qt5开始,QDesktopWidget官方不建议使用,改为QScreen。Qt 6.0 及之后版本,QDesktopWidget 已从QtWidgets 模块中被彻底移除。
QDesktopWidget
QDesktopWidget 提供了详细的位置信息,其能够自动返回窗口在用户窗口的位置和应用程序窗口的位置。文章来源:https://www.toymoban.com/news/detail-730310.html
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) 文章来源地址https://www.toymoban.com/news/detail-730310.html
/**
* 设置窗体初始化位置及尺寸。
*/
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)
到了这里,关于Qt获取屏幕(桌面)的大小或分辨率的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!