Я пишу графическое приложение на C ++ с использованием Qt 5.5.0 на OS X El Capitan на Retina MacBook Pro. Текст в пикселях по всему приложению, поэтому я подозреваю, что режим высокого разрешения не используется. Мой Info.plist содержит следующее определение:
<key>NSHighResolutionCapable</key>
<true/>
Как включить режим высокого разрешения (особенно для рендеринга текста) в приложении Qt на OS X?
Убедитесь, что ваш info.plist имеет NSPrincipalClass
а также NSApplication
ключи. Согласно Qt docs, NSHighResolutionCapable
является необязательным и истинным по умолчанию. Вот весь мой список для справки:
<?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>@ICON@</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleGetInfoString</key>
<string>Created by Qt/QMake</string>
<key>CFBundleSignature</key>
<string>@TYPEINFO@</string>
<key>CFBundleExecutable</key>
<string>@EXECUTABLE@</string>
<key>CFBundleIdentifier</key>
<string>com.my.@EXECUTABLE@</string>
</dict>
</plist>
Если вы настаиваете на указании NSHighResolutionCapable
вручную, обратите внимание, что вы сделали это неправильно в своем вопросе. Вот правильный синтаксис из тех же документов:
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSHighResolutionCapable</key>
<string>True</string>
Вам также нужно позвонить QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps)
только после создания QApplication
объект, чтобы иметь возможность использовать растровые изображения с высоким разрешением. Узнайте больше здесь: http://doc.qt.io/qt-5/qpixmap.html#devicePixelRatio