2015-12-25 102 views
8

我正在使用OS X El Capitan上的Qt 5.5.0在Retina MacBook Pro上編寫C++圖形應用程序。文本在整個應用程序中都是像素化的,所以我懷疑沒有使用高DPI模式。我的Info.plist包含以下定義:在OS X的Qt5上支持Retina

<key>NSHighResolutionCapable</key> 
    <true/> 

我如何在OS X中的Qt應用程序啓用高分辨率模式(特別是文本渲染)?

+0

Qt Widgets or QML? –

+0

我的Qt Widgets應用程序在視網膜上完美無瑕,我的.plist中沒有該鍵。事實上,我沒有特別的鑰匙。剛剛檢查。 –

+0

我使用Qt小部件。 – SurvivalMachine

回答

3

確保您的info.plist有NSPrincipalClassNSApplication鍵。根據Qt docsNSHighResolutionCapable是可選的,默認情況下爲true。這是我整個的plist以供參考:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd"> 
<plist version="0.9"> 
<dict> 
    <key>NSPrincipalClass</key> 
    <string>NSApplication</string> 
    <key>CFBundleIconFile</key> 
    <string>@[email protected]</string> 
    <key>CFBundlePackageType</key> 
    <string>APPL</string> 
    <key>CFBundleGetInfoString</key> 
    <string>Created by Qt/QMake</string> 
    <key>CFBundleSignature</key> 
    <string>@[email protected]</string> 
    <key>CFBundleExecutable</key> 
    <string>@[email protected]</string> 
    <key>CFBundleIdentifier</key> 
    <string>[email protected]@</string> 
</dict> 
</plist> 

如果你堅持要手動指定NSHighResolutionCapable,請注意,你做錯了你的問題。下面是來自同一個文檔正確的語法:

<key>NSPrincipalClass</key> 
<string>NSApplication</string> 
<key>NSHighResolutionCapable</key> 
<string>True</string> 
+0

我試過你的plist並手動正確指定'NSHighResolutionCapable',但它仍然模糊/像素化。 – SurvivalMachine

+1

經過多次測試後,您的答案實際上是正確的。我的運行目錄包含.plist的舊副本。手動設置'NSHighResolutionCapable'不是必需的。 – SurvivalMachine

+0

@SurvivalMachine:除非你需要,否則我相信你可以完全拋棄plist。如果沒有它,也應該工作。 –