2015-12-25 10 views
8

私はRetina MacBook ProのOS X El CapitanでQt 5.5.0を使用してC++グラフィカルアプリケーションを作成しています。テキストはアプリケーション全体にピクセル化されているので、高いDPIモードは使用されていないと思われます。私はOS X上のQtアプリケーションで(特にテキストのレンダリングのための)高解像度モードを有効にするにはどうすればよいOS XのQt5での網膜のサポート

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

:私のInfo.plistには、次の定義が含まれていますか?

+0

QtウィジェットまたはQML? –

+0

My Qt Widgetsアプリケーションは網膜上で完璧に機能し、私の.plistにそのキーはありません。私は実際には特別な鍵を持っていません。ちょうどチェックした。 –

+0

私はQtウィジェットを使用しています。 – SurvivalMachine

答えて

3

info.plistにNSPrincipalClassNSApplicationのキーがあることを確認してください。 Qt docsによれば、NSHighResolutionCapableは省略可能で、デフォルトでは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を投げることができると確信しています。それなしでも動作するはずです。 –

1

また、単に、高DPIのピックスマップを使用できるようにQApplicationオブジェクトを作成した後QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps) を呼び出す必要があります。続きを読む:http://doc.qt.io/qt-5/qpixmap.html#devicePixelRatio

関連する問題