python - 在 Retina 显示器上优化 Python QT 应用程序

标签 python qt pyqt pyside

Qt 界面目前在视网膜显示器上看起来很糟糕,因为它们按比例放大。可以将 Info.Plist 用于已编译的应用程序,但有没有人有动态 python 的解决方案,例如在 PySide 中创建的界面?

最佳答案

您没有说明您使用的是什么 Qt 版本。 Retina 支持在最新版本 Qt v5.1 中最好。不过v5.0的也不错。如果您仍在使用 Qt v4.8,则必须手动应用 patches启用高 DPI。

高 DPI 模式由 Info.Plist 文件中的以下键控制:

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

Qt 5 使用光栅绘图引擎,通过缩放绘图变换实现高 dpi 矢量图形。如果未设置 NSHighResolutionCapable,应用程序将以“正常”分辨率呈现,该分辨率将简单地按比例放大。这在高分辨率显示器上看起来很糟糕。另一方面,高分辨率模式完全向后兼容,在低分辨率显示器上也能很好地呈现。我会一直启用它。

启用高 DPI 后,您仍然必须确保所有光栅内容(图像资源)具有足够高的分辨率才能很好地显示。请参阅 QT 博客文章 Retina display support for Mac OS, iOS and X11了解全部详情。

关于python - 在 Retina 显示器上优化 Python QT 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17211006/

相关文章:

qt - 使用 QT 播放远程声音

c++ - 查看QCursor::setPos是否有效果

python - QSortFilterProxyModel 获取过滤后的数据

python - 防止 QTreeView 项目在过滤掉后自动折叠

python - 为什么 split() 在同一字符串上返回的元素多于 split ("")?

Python:如何进行惰性调试日志记录

python - 如何将数据从文本操作为 CSV

c++ - 存储不断访问的数据的最佳方式

python - 获取所有子树的值

python - 使用 PySide/PyQt 处理 QFileSystemWatcher 错误 - Python 3.x