Qt縮放係數

2021-10-02 00:12:52 字數 891 閱讀 2293

qt介面縮放由內部類qhighdpiscaling控制,應用程式可以通過設定全域性變數影響qt的整體縮放係數。

qt中影響縮放係數的全域性巨集變數有:

qt_device_pixel_ratio //不推薦使用,沒有設定qt_scale_factor時生效。

qt_scale_factor //全域性縮放係數,多個螢幕用統一的縮放係數

qputenv("qt_scale_factor", "2");
qt_screen_scale_factors //設定多個螢幕的縮放係數,該引數的值採用分號";"組合的鍵值對表示,其中名字對應

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)

qputenv("qt_scale_factor", qstring::number(dscalefactor).toutf8());

縮放係數計算

把乙個物品放入到乙個背景框中,背景框可能比物品大,也可能比物品小,那麼就需要進行縮放,才能是物品很好的放入背景框中。縮放係數 local scale itembgsize.width itemimage getcontentsize width itemimage setscale scale 0....

qt 中控制項保持比例縮放

最終效果 實現思路是這樣的 封裝乙個類,整合自qframe 繼承自qframe而不是qwidget是因為qframe過載了paintevent,方便進行樣式美化 在這個類中宣告乙個qwidget的成員變數,重寫派生類的這個方法 virtual void resizeevent qresizeeven...

Qt之自定義介面(窗體縮放)

通過前兩節內容,我們實現了自定義窗體的移動,以及自定義標題欄 用來顯示窗體的圖示 標題,以及控制窗體最小化 最大化 關閉。在這之後,我們還缺少窗體的縮放 當滑鼠移動到窗體的邊框 左 上 右 下 左上角 左下角 右上角 右下角時候,滑鼠變為相應的樣式,並且窗體可以隨著滑鼠拖動而進行放大 縮小。首先,設...