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