c++ - OS X 上 Qt5 中的 Retina 支持

标签 c++ macos qt retina

我正在 Retina MacBook Pro 上的 OS X El Capitan 上使用 Qt 5.5.0 编写 C++ 图形应用程序。整个应用程序中的文本都是像素化的,所以我怀疑没有使用高 DPI 模式。我的 Info.plist 包含以下定义:

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

如何在 OS X 上的 Qt 应用程序中启用高分辨率模式(尤其是文本渲染)?

最佳答案

确保您的 info.plist 具有 NSPrincipalClassNSApplication 键。根据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>

关于c++ - OS X 上 Qt5 中的 Retina 支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34465506/

相关文章:

objective-c - 获取鼠标下的窗口值

c++ Qt,等待第二次点击

c++ - 方法调用后返回值是否总是进入 eax 寄存器?

mysql - 创建ejabberd用户

c++ - unordered_map::clear() 释放c++中元素占用的内存?

macos - Navicat: 保存密码失败 错误代码: mac os 上 -34018

c++ - 寻找最佳颜色匹配 - 如果没有可用的颜色阴影则拒绝

qt - 奇怪的 Qt 行为导致我的应用程序崩溃

c++ - 错误 : ‘xxx’ does not name a type

c++ - 将 std::unique_ptr 与 std::istream 一起使用?