OS X 上 Qt5 中的 Retina 支持
Retina support in Qt5 on OS X
我正在 Retina MacBook Pro 上的 OS X El Capitan 上使用 Qt 5.5.0 编写 C++ 图形应用程序。整个应用程序中的文本都是像素化的,所以我怀疑没有使用高 DPI 模式。我的 Info.plist 包含以下定义:
<key>NSHighResolutionCapable</key>
<true/>
如何在 OS X 上的 Qt 应用程序中启用高分辨率模式(尤其是文本渲染)?
确保您的 info.plist 有 NSPrincipalClass
和 NSApplication
键。根据 Qt docs,NSHighResolutionCapable
是可选的,默认情况下为真。这是我的整个 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>@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
对象后才能使用高 DPI 像素图。在这里阅读更多:http://doc.qt.io/qt-5/qpixmap.html#devicePixelRatio
我正在 Retina MacBook Pro 上的 OS X El Capitan 上使用 Qt 5.5.0 编写 C++ 图形应用程序。整个应用程序中的文本都是像素化的,所以我怀疑没有使用高 DPI 模式。我的 Info.plist 包含以下定义:
<key>NSHighResolutionCapable</key>
<true/>
如何在 OS X 上的 Qt 应用程序中启用高分辨率模式(尤其是文本渲染)?
确保您的 info.plist 有 NSPrincipalClass
和 NSApplication
键。根据 Qt docs,NSHighResolutionCapable
是可选的,默认情况下为真。这是我的整个 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>@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
对象后才能使用高 DPI 像素图。在这里阅读更多:http://doc.qt.io/qt-5/qpixmap.html#devicePixelRatio