Skip to content

Qt窗口适配系统缩放 #75

@holdyounger

Description

@holdyounger

Qt窗口适配系统缩放

代码

struct DpiCompatible
{
	static double GetDpiScale()
	{
		double dDpi = 1.0;
		HDC desktopDc = GetDC(NULL);
		float horizontalDPI = GetDeviceCaps(desktopDc, LOGPIXELSX);
		float verticalDPI = GetDeviceCaps(desktopDc, LOGPIXELSY);
		int dpi = (horizontalDPI + verticalDPI) / 2;
		dDpi = 1 + ((dpi - 96) / 24) * 0.25;
		if (dDpi < 1)
		{
			dDpi = 1;
		}
		ReleaseDC(NULL, desktopDc);
		return dDpi;
	}
	static void InitQtDPICompatible()
	{
		SetProcessDPIAware();
		qputenv("QT_SCALE_FACTOR", QString::number(GetDpiScale()).toLatin1());
	}
};

使用

	//设置该属性解决在不同缩放比例的显示器之间移动时布局混乱和不跟随windows系统缩放的问题
	DpiCompatible::InitQtDPICompatible();

blog link Qt窗口适配系统缩放

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions