Java教程

Qt获取屏幕DPI

本文主要是介绍Qt获取屏幕DPI,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Qt在使用一些功能时需要用到DPI

Qt5.6已经可以自适应DPI与手动设置DPI

# 1. 使用MSVC
	// Get desktop dc
	HDC desktopDc = GetDC(NULL);
	// Get native resolution
	float horizontalDPI = GetDeviceCaps(desktopDc, LOGPIXELSX);
	float verticalDPI = GetDeviceCaps(desktopDc, LOGPIXELSY);
	
	int dpi = (horizontalDPI + verticalDPI) / 2; 
	int fontsize = 4 * dpi / 72; //8pt 144dpi is 4px 
	fontsize = fontsize > 8 ? fontsize : 8;
	QFont MenuFont("SimHei", fontsize);
	QApplication::setFont(MenuFont); 

# 2. 使用 MinGW
#include <QPaintDevice>  
//逻辑DPI
	int horizontalDPI = logicalDpiX(); 
	int verticalDPI  = logicalDpiY();  
//物理DPI (和逻辑DPI不一定相同)
	int horizontalDPI = physicalDpiX(); 
	int verticalDPI  = physicalDpiY(); 

# 3. 分辨率
#include <QDesktopWidget>
    int currentScreenWidth = QApplication::desktop()->width();
    int currentScreenHeight = QApplication::desktop()->height(); 
//或者 
    QDesktopWidget* desktopWidget = QApplication::desktop();
    //获取可用桌面大小
    QRect deskRect = desktopWidget->availableGeometry();
    //获取设备屏幕大小
    QRect screenRect = desktopWidget->screenGeometry(); 
    screenX = screenRect.width();
    screenY = screenRect.height();  

这篇关于Qt获取屏幕DPI的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!