有多种方式可以进行自适应,先总结以下几种方式:
方式一
如果存在布局,可通过设置layoutStrech对控件进行比例设置。设置后,控件将会根据比例进行显示。
如下图,设置1,1,那么当布局放大或者缩小后,两个控件将会一直保持分别占有布局一半的大小。
方式二
通过代码获取当前电脑缩放倍数,并对控件大小根据倍率进行调整。
传入控件100%下的大小,得到当前电脑缩放倍数下的像素大小。再对控件设置宽度和高度
方式三
新版本的Qt比如Qt5.14修正了对高分屏的处理支持不是整数的缩放。在mian.cpp中增加以下两句代码
qputenv(“QT_ENABLE_HIGHDPI_SCALING”, “1”);
QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough);