Qt5 获取多屏幕分辨率以及屏幕缩放比例DPI适配

最近在开发qt相关,将需要的东西记录下来,可以给后来的开发人员做参考,同时也是给自己做一个备忘,有什么问题大家可以多多交流.

1、获取多个显示器屏幕分辨率

#include 
#include 
#include 

// 获取多显示器,通过list存储当前主机所有显示器
QList<QScreen *> list_screen = QGuiApplication::screens();

// 通过循环可以遍历每个显示器
for (int i = 0; i < list_screen.size(); i++)
{
	QRect rect = list_screen.at(i)->geometry();
	int desktop_width = rect.width();
	int desktop_height = rect.height();
	// 打印屏幕分辨率
	qDebug() << desktop_width <<desktop_height;
}

2、获取主屏幕的缩放比例

// 除以96之后即可转换成dpi的数值,以2k屏幕为例,Windows默认dpi是125%,这里的值就是:1.25
double dpi  = QGuiApplication::primaryScreen()->logicalDotsPerInch() / 96;

3、获取窗口所在屏幕的缩放比例

double dpi = this->screen()->logicalDotsPerInch() / 96;

你可能感兴趣的:(QT,c++,qt)