我想控制所有文字元素的pointsize到像素縮放在我的Qt 5.2.1 QML/C++應用程序。如何更改QML應用程序的邏輯DPI?
我有像寬度,高度和點間距計算用於普通尺寸適當的像素大小的目標顯示特性的QML單獨組件,例如,以像素爲推薦的大小爲觸摸屏按鈕。這適用於我編寫的控件,但Text元素有一個非常好的font.pointSize,如果我可以只設置用於文本縮放的邏輯DPI,我會使用它。
我用這個具有非常不同的屏幕DPI來模擬目標設備,而我的96 DPI發展屏上調試。例如,我想運行我的應用程序,針對1280×720 133DPI顯示,有喜歡的元素:
Text { font.pointSize: 72; text: 「Xy」 }
顯示133個像素高,而不是96像素高的文字,我得到,因爲OS告訴Qt我有一個96 DPI監視器連接。我想重寫我的應用程序的邏輯DPI縮放比例。
我可以通過QGuiApplication QScreen列表看到logicalDotsPerInchX。有大量關於如何獲得邏輯DPI的文檔。但我找不到有關如何更改它的任何信息。
如何更改邏輯DPI爲我的Qt應用程序?
我希望不是這樣,但你是正確的。我最終得到了一個類似於你的建議的解決方案;我註冊了一個跟蹤DPI併爲pt,mm和in(ches)提供常量的C++單例。例如:文本{text:'hi'; font.pixelSize:24 * UI.pt} 使用Qt 5.5和5.6的高DPI支持改進的問題,但如果縮放倍率不是整體有走樣的問題。我的課很容易使用,我不打擾高DPI的支持,但我正在做嵌入式開發;高DPI適用於桌面應用程序。 – pixelgrease