Qt縮放係數

Qt界面縮放由內部類QHighDpiScaling控制,應用程序可以通過設置全局變量影響Qt的整體縮放係數。

Qt中影響縮放係數的全局宏變量有:

QT_DEVICE_PIXEL_RATIO //不推薦使用,沒有設置QT_SCALE_FACTOR時生效。

QT_SCALE_FACTOR //全局縮放係數,多個屏幕用統一的縮放係數

qputenv("QT_SCALE_FACTOR", "2");

QT_SCREEN_SCALE_FACTORS //設置多個屏幕的縮放係數,該參數的值採用分號";"組合的鍵值對錶示,其中名字對應

QGuiApplication::screens()中獲取的QScreen::name()值,如下爲測試時兩臺顯示器的名稱。

qputenv("QT_SCREEN_SCALE_FACTORS", "\\\\.\\DISPLAY1=1;\\\\.\\DISPLAY2=2");

QT_AUTO_SCREEN_SCALE_FACTOR //縮放係數由系統(Platform)根據DPI計算,值爲0或者非0值,表示開啓或關閉DPI自適應,若同時設置QT_SCALE_FACTOR,最終的縮放係數爲二者乘積。

 
qputenv("QT_AUTO_SCREEN_SCALE_FACTOR", "1");

 

 

在Windows平臺,若需要根據分辨率設置不同的界面大小,可以採用以下方式

    double dScaleFactor = 1.0;
    SetProcessDPIAware();
    int nWidth = GetSystemMetrics(SM_CXSCREEN);
    if(nWidth >= 3840)
    {
        dScaleFactor = 2.0;
    }
    qputenv("QT_SCALE_FACTOR", QString::number(dScaleFactor).toUtf8());

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章