如何在Qt4 OpenGL应用程序中启用HiDPI(Retina)支持?

时间:2014-06-01 22:24:20

标签: qt opengl qt4 macports retina

我正在使用带有QGraphicsView的QGraphicsScene,如this document中所述;我打算最终在我的OpenGL渲染场景上覆盖Qt小部件。

当我启动在上面的教程之后建模的虚拟应用程序时,渲染的视图非常像素化 - HiDPI根本不工作。根据{{​​3}},我已手动添加:

<key>NSHighResolutionCapable</key>
<string>True</string> 

到应用程序的Info.plist文件,仍然无效。 (看来这应该默认为true,所以也许这并不奇怪。

除此之外,我还没有找到让HiDPI工作所需的东西。我没有使用QtCreator,我的Qt安装是macports&#39; qt4-mac。我错过了什么?

2 个答案:

答案 0 :(得分:1)

Qt5为OpenGL上下文启用HiDPI,但不为小部件和QGraphicsItem启用。

根据this bug,尚不支持在HiDPI中的QGLWidget上渲染小部件和QGraphicsItems;它们将以标准分辨率渲染并调整大小。

QGraphicsView将在HiDPI中呈现,如果它有一个普通的QWidget来支持它。如果在没有OpenGL的情况下使用QGraphicsItems可以达到预期效果,那么在改进HiDPI支持之前,这可能更为可取。

答案 1 :(得分:0)

我刚刚找到解决方案:使用--graphicssystem native运行您的程序。或者,如果您可以更改来源,则可以使用QApplication::setGraphicsSystem("native");