Qt5.2.1,.2.0 OSX Mavericks 上的渲染问题 - 是啥原因造成的,如何解决?

Posted

技术标签:

【中文标题】Qt5.2.1,.2.0 OSX Mavericks 上的渲染问题 - 是啥原因造成的,如何解决?【英文标题】:Qt5.2.1,.2.0 Rendering Issue on OSX Mavericks - what is causing it, how to fix it?Qt5.2.1,.2.0 OSX Mavericks 上的渲染问题 - 是什么原因造成的,如何解决? 【发布时间】:2014-04-16 01:30:11 【问题描述】:

我有一个script that I'm using to compile 一个基于 Qt 的图形库,称为 tulip。仅供参考,您还可以从他们的 sourceforge here 下载郁金香发行版。然后,您可以在里面查看 /Applications/Tulip 4.5/Contents/lib 和 /Applications/Tulip 4.5/lib/python,DYLD_LIBRARY_PATH 和 PYTHONPATH 中的每一个都应分别设置为。如果你这样做了,你可以跳到运行最小的代码示例

您可以轻松下载并运行它以针对任意版本的 qt 编译 tulip,(该脚本仅在 Qt5.1.0 和可能更早的版本上失败,我认为这是 -std=c++11 之类的东西)。只要确保你已经安装了 Qt。您可能需要将前缀更改为您需要的前缀,并且您需要 python3.4,但除此之外它很容易使其工作(如果您遇到任何错误,我会找出问题所在,所以不要'毫不犹豫地报告)。

以下最小的操作集完全重现了我遇到的问题(一旦你编译了郁金香本身):

>>> from tulip import *
>>> from tulipgui import *
loadPlugins info: /Users/kennethadammiller/Library/Application Support/Python/plugins//lib/tulip/ - No such file or directory
>>> g = tlp.newGraph()
>>> n = g.addNode()
>>> view = tlpgui.createNodeLinkDiagramView(g)

当您查看结果时,您应该得到如下内容:

.

问题是,为什么它只使用 GL 视图的左下象限?我怎样才能让它全部使用?正如您在照片中看到的那样,节点(在这种情况下应该是一个圆圈,在包含窗口的宽度和高度的一半处被截断;我真的想要整个窗口。相比之下,我我已经在我的 linux vm 上构建了完全相同的设置,它根本不会给我带来任何麻烦。

编辑 1: 我刚刚确认这不是由 Debug cmake 标志引起的。我重新编译,它仍然在发生。

编辑 2: 我刚刚指出使用 qt 4.8.5 进行编译可以完全消除此错误。所以这是造成这种情况的原因是 Qt 4.8.5 和 qt 版本 > 5 之间的差异。

【问题讨论】:

【参考方案1】:

其实我发现这是由于新的 mac 为视网膜提供的屏幕分辨率不同造成的。在 4.8 和 5.2 之间,qt 在其库中添加了对该分辨率的支持,这意味着必须重新考虑提及像素的代码;某些参数现在仅将像素解释为一半大,因此左下半部分是 qt 系统渲染 1/2 x 1/2。

我为 tulip 提供的用于修复节点链接图视图的那个视图提交了一个补丁。

【讨论】:

以上是关于Qt5.2.1,.2.0 OSX Mavericks 上的渲染问题 - 是啥原因造成的,如何解决?的主要内容,如果未能解决你的问题,请参考以下文章

在OSX上从源代码构建GIMP 2.10失败了“gimp-debug-tool-2.0”

Cmake 不适用于 Maverick 上的 openMP

在 Maverick 上使用 GLFW3 的 C++ 代码:glShaderSource 没有匹配函数

无法为 pyspark OSX 启动 Jupyter Notebook:IPYTHON 和 IPYTHON_OPTS 在 Spark 2.0+ 中被删除

将服务器添加到团队时出现 OS X Server 持续集成错误

关于Mac OS 使用GIT的引导