gpt4 book ai didi

c++ - 带有 QOpenGLWIdget 的 Qt MainWindow 在 Retina 显示器中显示错误的尺寸

转载 作者:搜寻专家 更新时间:2023-10-31 00:10:11 24 4
gpt4 key购买 nike

我有一个带有 MainWindow 的 Qt 应用程序。

我在其中嵌入了一个QOpenGLWidget。一切正常,直到我开始使用 Apple Retina 显示器并在高 DPI 模式下运行我的应用程序:我的 QOpenGLWidget 只是它应该具有的大小的 1/4(即,它只填充底部- 它应该填充的区域的左侧部分)。这个小部件正在显示原始 OpenGL 数据(实际上是一个 OpenSceneGraph 上下文)

我该怎么做才能解决这个问题?

最佳答案

发现对于 OpenGL 相关的小部件和事件,目前最好的选择是使用 QPaintDevice::devicePixelRatio() ( http://doc.qt.io/qt-5/qpaintdevice.html#devicePixelRatio )

这意味着乘以所有使用像素坐标的东西,即鼠标事件、调整大小事件等。示例:

void MyGLWidget::resizeGL(int width, int height) {
width *= Application::desktop()->devicePixelRatio();
height *= Application::desktop()->devicePixelRatio();

...
// Continue with previous code

}

在 Retina/HighDPI 显示器中以低分辨率模式运行时,或者在常规显示器中运行时,该比率为 1,所以这对我来说似乎很便携。

关于c++ - 带有 QOpenGLWIdget 的 Qt MainWindow 在 Retina 显示器中显示错误的尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39455504/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com