|
|
#pragma once
|
|
|
|
|
|
#include "LlUtils_global.h"
|
|
|
#include "Defines.h"
|
|
|
|
|
|
// 本类的目的主要是实现分辨率适配相关的内容
|
|
|
// 主要为了速度
|
|
|
class I_UTILSSHARED_EXPORT ZxResolutionHelper
|
|
|
{
|
|
|
public:
|
|
|
|
|
|
// 获取对象,单例模式
|
|
|
static ZxResolutionHelper* getInstance();
|
|
|
|
|
|
// 关闭消耗
|
|
|
static void release();
|
|
|
|
|
|
// 根据屏幕分辨率对大小进行调整
|
|
|
// 为了代码速度以及保密需要,不再启用模版,模版版本可以参见20240920之前版本//
|
|
|
// template<typename T> T adjustSize(T v, bool bHori = true, QWidget* pWx = NULL)
|
|
|
int adjustSizeW(int v, QWidget* pWx = NULL);
|
|
|
int adjustSizeH(int v, QWidget* pWx = NULL);
|
|
|
double adjustSizeW(double v, QWidget* pWx = NULL);
|
|
|
double adjustSizeH(double v, QWidget* pWx = NULL);
|
|
|
|
|
|
// 获取实际分辨率
|
|
|
int getResoRealW();
|
|
|
int getResoRealH();
|
|
|
|
|
|
// 获取基准分辨率(内部ini设定的分辨率,通常很少调用该函数)
|
|
|
int getResoBaseW();
|
|
|
int getResoBaseH();
|
|
|
|
|
|
// 当前软件运行的屏幕分辨率与基准分辨率的比值
|
|
|
double getResoRatioW();
|
|
|
double getResoRatioH();
|
|
|
|
|
|
enum Icon_Size_Mode
|
|
|
{
|
|
|
ISM_Small = 0, //小
|
|
|
ISM_Mid,
|
|
|
ISM_Large,
|
|
|
ISM_Super,
|
|
|
ISM_Auto //其实就是ISM_Mid
|
|
|
};
|
|
|
|
|
|
// 根据当前屏幕分辨率,获取图标适合的大小,通常是16,24,32等
|
|
|
int getProperIconSize(Icon_Size_Mode ism = ISM_Mid);
|
|
|
|
|
|
private:
|
|
|
|
|
|
ZxResolutionHelper();
|
|
|
~ZxResolutionHelper();
|
|
|
|
|
|
private:
|
|
|
|
|
|
// 显示器相关
|
|
|
void makesureRatioWH(int nIndex);
|
|
|
int getScrnIndexOf(QWidget* pWx);
|
|
|
void makesureIconSizes();
|
|
|
|
|
|
// 根据屏幕分辨率对大小进行调整
|
|
|
// 为了代码速度以及保密需要,不再启用模版,模版版本可以参见20240920之前版本//
|
|
|
int adjustSize(int v, bool bHori = true, QWidget* pWx = NULL);
|
|
|
double adjustSize(double v, bool bHori = true, QWidget* pWx = NULL);
|
|
|
|
|
|
private:
|
|
|
|
|
|
static ZxResolutionHelper* spResoHelper;
|
|
|
|
|
|
// 软件研发时,研发人员默认参照的显示,权宜之计
|
|
|
int m_nBaseW;
|
|
|
int m_nBaseH;
|
|
|
|
|
|
// 实际的
|
|
|
int m_nRealW;
|
|
|
int m_nRealH;
|
|
|
|
|
|
// 当前软件运行的屏幕分辨率与基准分辨率的比值
|
|
|
double m_dRatioW;
|
|
|
double m_dRatioH;
|
|
|
|
|
|
// 当前屏幕分辨率下,图标比较合适的大小,只是为了方便
|
|
|
VecInt m_vecIconSizes;
|
|
|
|
|
|
// 选用的屏幕索引,对于多显示器模式
|
|
|
int m_nScrnIndex;
|
|
|
|
|
|
// 临时,暂未启用
|
|
|
bool m_bVerified;
|
|
|
|
|
|
// Error
|
|
|
QString m_sError;
|
|
|
};
|
|
|
|
|
|
#define _resoHelper ZxResolutionHelper::getInstance()
|
|
|
#define _resoSizeW ZxResolutionHelper::getInstance()->adjustSizeW
|
|
|
#define _resoSizeH ZxResolutionHelper::getInstance()->adjustSizeH
|